Existem alguns problemas com as soluções listadas aqui (até aceitas).
Você não precisa listar todos os hashes, pois receberá duplicatas. Além disso, leva mais tempo.
Ele se baseia nisso, onde você pode pesquisar uma sequência "test -f /"
em várias ramificações master
e, dev
como
git grep "test -f /" master dev
que é o mesmo que
printf "master\ndev" | xargs git grep "test -f /"
Então aqui vai.
Ele encontra os hashes para a ponta de todas as ramificações locais e pesquisa apenas nas confirmações:
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Se você precisar procurar em ramificações remotas, adicione -a
:
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Mais distante:
# Search in local branches
git branch | cut -c3- | xargs git grep "string"
# Search in remote branches
git branch -r | cut -c3- | xargs git grep "string"
# Search in all (local and remote) branches
git branch -a | cut -c3- | cut -d' ' -f 1 | xargs git grep "string"
# Search in branches, and tags
git show-ref | grep -v "refs/stash" | cut -d' ' -f2 | xargs git grep "string"