Что это за отслеживание веток (если есть) в git? - PullRequest
18 голосов
/ 03 сентября 2010

После создания ветки с помощью --track (или оставив значение по умолчанию, или --notrack), вы позже захотите напомнить о том, что отслеживает ветка. Есть ли способ, кроме поиска в файле .git / config, показать, что отслеживает ветка?

Ответы [ 5 ]

26 голосов
/ 03 сентября 2010

Используйте: git branch -vv, чтобы увидеть, какие ветви отслеживаются, а какие нет.

6 голосов
/ 23 апреля 2013

Обратите внимание, что с git1.8.3 (22 апреля 2013 г.) у вас есть новый способ выделить ветку вверх по течению:

"git branch --vv "научился рисовать название объединяемой ветви другим цветом (color.branch.upstream, по умолчанию синий ).

C:\prog\git\git>git branch -vv
* master 118f60e [origin/master] Sync with maint
                  ^^^^^^^^^^^^^
                       |
                       --- now in blue
6 голосов
/ 03 сентября 2010

Если вы хотите узнать для данной ветки, вы можете сделать:

git config --get branch.<branch>.remote

Если он печатает пульт, он что-то отслеживает.Если он ничего не печатает и возвращает ошибку, это не так.

2 голосов
/ 03 сентября 2010

Если вам нужен автоматический доступ к этой информации, вам не следует пытаться проанализировать вывод 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
0 голосов
/ 02 ноября 2016

Спасибо за подсказку Джефроми

С помощью следующей команды вы можете получить ветку удаленного отслеживания для конкретной ветки.

git config --get branch.<branch>.merge

Чтобы изменить ветку удаленного отслеживания, вы можете просто изменить это значение конфигурации.

Примечание: это альтернативный способ git branch -vv (уже здесь ответили)
и git branch -u ( Сделать существующую ветку Git удаленной веткой? )

...