Search Git remote all branches for file contents

You can try this:

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

That will search all remote branches for search-string. Since the symbolic reference HEAD is mirrored, you may end up searching the same commit twice. Hopefully that's not an issue. If so, you can filter it out with:

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

If you need to dig through your entire history, you can also try:

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

Assuming you are tracking all remote branches, this will search it in all commits:

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

To track all remote branches:

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

Tags:

Git

Github