这里列出的解决方案存在一些问题(甚至可以接受)。
您不需要列出所有哈希,因为您将得到重复的哈希。另外,这需要更多时间。
它建立在这个地方,你可以搜索字符串"test -f /"
的多个分支master
,并dev
作为
git grep "test -f /" master dev
与...相同
printf "master\ndev" | xargs git grep "test -f /"
所以去。
这会找到所有本地分支的尖端的哈希值,并且仅在那些提交中搜索:
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
如果您还需要搜索远程分支,请添加-a
:
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
进一步:
# 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"