После создания ветки с --track (или оставив по умолчанию или -notrack), вы позже захотите получить напоминание о том, что отслеживает ветка. Есть ли способ, кроме поиска в файле .git/config, для отображения того, что отслеживает ветка?
Что такое отслеживание ветки (если есть) в git?
Ответ 1
Используйте: git branch -vv
, чтобы увидеть, какие ветки отслеживаются, а какие нет.
Ответ 2
Если вы хотите узнать для данной ветки, вы можете сделать:
git config --get branch.<branch>.remote
Если он печатает пульт, он отслеживает что-то. Если он ничего не печатает и возвращает сбой, это не так.
Ответ 3
Обратите внимание, что с 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
Ответ 4
Если вам нужно получить доступ к этой информации в автоматическом режиме, вам не захочется анализировать вывод branch -vv
(ответ slebetmans).
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
Ответ 5
Спасибо за подсказку Jefromi
С помощью следующей команды вы можете получить ветвь удаленного отслеживания для конкретной ветки.
git config --get branch.<branch>.merge
Чтобы изменить ветвь удаленного отслеживания, вы можете просто изменить это значение конфигурации.
Примечание: это альтернативный способ git branch -vv
(уже здесь ответил)
и git branch -u
(Сделать существующий ветвь отслеживания Git удаленной ветвью?)