是否有可能在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
git branch -r
会显示其中符号引用的内容。我已经更新了我的答案,提供了另一种可行但不太美观的方法。 - John Szakmeister