2013-08-16 107 views

回答

19

你可以試試這個:

git grep 'search-string' $(git ls-remote . 'refs/remotes/*' | cut -f 2) 

,將搜索所有遠程分支機構的search-string。由於符號引用HEAD是鏡像的,因此您最終可能會搜索同一個提交兩次。希望這不是問題。

git grep 'search-string' \ 
    $(git ls-remote . 'refs/remotes/*' | grep -v HEAD | cut -f 2) 

如果你需要通過你的整個歷史來挖,你也可以嘗試:如果是這樣,你可以用篩選出來

git grep 'search-string' $(git rev-list --all) 
+0

第二個命令對我的作品,但先不;我得到'致命的:糟糕的標誌' - >'在文件名後使用' – patrickvacek

+1

對不起。我忘了'git branch -r'會在其中顯示符號引用的內容。我用其他可行的方式更新了我的答案,但不盡如人意。 – jszakmeister

4

假設你正在跟蹤所有遠程分支這將在所有提交中搜索它。

git log --all -p | grep 'search-string' 

要跟蹤所有遠程分支:

for remote in `git branch -r`; do git branch --track $remote; done