Istnieje kilka problemów z wymienionymi tutaj rozwiązaniami (nawet akceptowane).
- Nie musisz wyświetlać wszystkich skrótów, ponieważ otrzymasz duplikaty, a także zajmuje więcej czasu.
Opiera się ona na to, gdzie można wyszukać ciąg "test -f /"
na wielu oddziałach master
i dev
jak
git grep "test -f /" master dev
która jest taka sama jak
printf "master\ndev" | xargs git grep "test -f /"
Więc tu idzie.
Znajduje to hashy na końcu wszystkich lokalnych oddziałów i wyszukuje tylko te zatwierdzenia.
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Jeśli trzeba szukać w odległych oddziałach zbyt następnie dodać -a
:
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Aktualizacja:
# 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- | xargs git grep "string"
# search in branches, and tags
git show-ref | grep -v "refs/stash" | cut -d' ' -f2 | xargs git grep "string"
[git-grep] (http://www.kernel.org/pub/software/scm/git/docs/git-grep.html) może być tym, czego szukasz, ale nie jestem jeszcze pewien, który opcje, których potrzebujesz ... – johnny
Możliwy duplikat [Jak grep (szukaj) popełniony kod w historii git?] (https://stackoverflow.com/questions/2928584/how-to-grep-search-committed- code-in-the-git-history) – nekketsuuu