2015-02-17 4 views
3

Например, master отслеживает origin/master. Как я могу попросить Git сказать мне, что master отслеживает origin/master в полезном для программ?Как получить ветку удаленного отслеживания для ветки в Git?

<fill-in-the-blank> master 
+0

Видимо все, что мне было нужно, '@ {и}'. Спасибо @AndrewC! – Schwern

ответ

2

Так как вы делаете это в сценарий, лучший способ, чтобы позвонить в конфиге

git config --get branch.${BRANCH}.remote 
git config --get branch.${BRANCH}.merge 

Если вы заинтересованы только в настоящее время проверили филиал затем мерзавец предоставляет специальный справочник @{u} для обозначения текущий вверх по течению. Просто используйте rev-parse, чтобы убедиться, что он действителен до его использования.

Если вы были просто набрав в терминале, то git branch -vv это путь

+0

Спасибо, это то, что у меня есть до сих пор. Есть ли лучший способ превратить это из 'ref/heads/blah' в' blah', кроме как выполнить поиск и заменить? – Schwern

+1

@Schwen - 'git name-rev --name-only' работает –

0

Самый простой способ:

git branch -vv 

который возвращает вывод, как

* master 5a24820 [origin/master] commitmsg 

Если вы работаете скрипты и вы просто хотите удаленного филиала:

git branch -vv | grep -oP '\[.+\]' 

Вы также можете использовать мычание команда:

git remote show origin

, который отображает информацию для удаленного хранилища происхождения.

например:

Remote branch: 
    master tracked Local branch configured for 'git pull': 
    master merges with remote master 

master merges with remote master говорит вам, что origin\master отслеживается с помощью вашей основной ветви. Тем не менее, это не очень элегантно.

+0

Это возвращает много вещей, и я не знаю, что мастер отслеживает происхождение. – Schwern

+0

Разве это не говорит 'Удаленная ветка: мастер-гусеничный'? –

+0

Он говорит [это] (https://gist.github.com/schwern/1f92cb08577623ccbc0e). Также * Я не могу предположить, что мастер отслеживает происхождение *. Могут быть много пультов. – Schwern

Смежные вопросы