Если вам нужен автоматический доступ к этой информации, вам не следует пытаться проанализировать вывод branch -vv
( ответа slebetman ).
Git предоставляет наборКоманды более низкого уровня со стабильными интерфейсами и форматами вывода.Эти команды (называемые «слесарное дело») являются предпочтительным интерфейсом для целей «сценариев».Команда git for-each-ref может предоставить необходимую информацию с помощью токена upstream
(доступно в Git 1.6.3 и более поздних версиях):
% git for-each-ref --shell --format='
b=%(refname:short) u=%(upstream:short)
# Make a fancy report or do something scripty with the values.
if test -n "$u"; then
printf "%s merges from %s\n" "$b" "$u"
else
printf "%s does not merge from anything\n" "$b"
fi
' refs/heads/ | sh
master merges from origin/master
other does not merge from anything
pu merges from origin/pu