git grep $(git rev-list --all)搜索所有提交,其中应包括所有分支。
另一种形式是:
git rev-list --all | (
while read revision; do
git grep -F 'yourWord' $revision
done
)您可以在this article中找到更多示例:
I tried the above on one project large enough that git complained about the argument size, so if you run into this problem, do something like:
git rev-list --all | (while read rev; do git grep -e $rev; done)(请参阅本答案最后一节中的替代方案,如下)
如果您需要,请不要忘记这些设置:
# Allow Extended Regular Expressions
git config --global grep.extendRegexp true
# Always Include Line Numbers
git config --global grep.lineNumber true这个别名也有帮助:
git config --global alias.g "grep --break --heading --line-number"
注意:chernjie suggested认为git rev-list --all是一种矫枉过正。
A more refined command can be:
git branch -a | tr