是否可以在我的所有 Git 远程分支中搜索特定文件内容(不仅仅是文件,而是其中的内容)?
我的遥控器在 GitHub 上,以防万一……
你可以试试这个:
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)
假设您正在跟踪所有远程分支,这将在所有提交中搜索它:
git log --all -p | grep 'search-string'
跟踪所有远程分支:
for remote in `git branch -r`; do git branch --track $remote; done