21

是否可以在我的所有 Git 远程分支中搜索特定文件内容(不仅仅是文件,而是其中的内容)?

我的遥控器在 GitHub 上,以防万一……

4

2 回答 2

27

你可以试试这个:

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)
于 2013-08-16T17:40:38.360 回答
6

假设您正在跟踪所有远程分支,这将在所有提交中搜索它:

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

跟踪所有远程分支:

for remote in `git branch -r`; do git branch --track $remote; done
于 2014-01-23T05:55:04.927 回答