Є декілька проблем із переліченими тут рішеннями (навіть прийнятими).
Не потрібно перераховувати всі хеші, оскільки ви отримаєте дублікати. Також потрібно більше часу.
Це спирається на це, де ви можете шукати рядок "test -f /"
на кількох гілках master
і dev
як
git grep "test -f /" master dev
що те саме
printf "master\ndev" | xargs git grep "test -f /"
Так ось іде.
Це знаходить хеші для підказки всіх місцевих гілок і здійснює пошук лише в цих комісіях:
git branch -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Якщо вам потрібно здійснити пошук у віддалених відділеннях, додайте -a
:
git branch -a -v --no-abbrev | awk -F' *' '{print $3}' | xargs git grep "string/regexp"
Далі:
# 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"