Có một vài vấn đề với các giải pháp được liệt kê ở đây (thậm chí được chấp nhận).
Bạn không cần liệt kê tất cả các giá trị băm vì bạn sẽ nhận được các bản sao. Ngoài ra, nó cần nhiều thời gian hơn.
Nó dựa trên điều này nơi bạn có thể tìm kiếm một chuỗi "test -f /"
trên nhiều nhánh master
và dev
như
git grep "test -f /" master dev
giống như
printf "master\ndev" | xargs git grep "test -f /"
Vì vậy, ở đây đi.
Điều này tìm thấy giá trị băm cho đầu của tất cả các chi nhánh địa phương và chỉ tìm kiếm trong các cam kết đó:
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Nếu bạn cũng cần tìm kiếm trong các chi nhánh từ xa thì hãy thêm -a
:
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Thêm nữa:
# Search in local branches
git branch | cut -c3- | xargs git grep "string"
# Search in remote branches
git branch -r | cut -c3- | xargs git grep "string"
# Search in all (local and remote) branches
git branch -a | cut -c3- | cut -d' ' -f 1 | xargs git grep "string"
# Search in branches, and tags
git show-ref | grep -v "refs/stash" | cut -d' ' -f2 | xargs git grep "string"