Git: Как получить название ветви, отслеживаемой текущей? - PullRequest
1 голос
/ 10 ноября 2011

Чтобы написать конкретный скрипт, мне нужно проверить, есть ли в текущей ветке отслеживаемый пульт и как называется этот пульт. Есть ли способ получить только название ветки, прикрепленной к текущей, без необходимости разбора git remote show origin output?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Это должно работать:

git rev-parse --symbolic-full-name @{u}
1 голос
/ 10 ноября 2011

Поскольку 28fb8438 (введена запись @ {upstream}, 2009-09-10), включенная в Git 1.7+, вы можете использовать HEAD@{upstream} (или HEAD@{u} для краткости), чтобы достичь этого.

Для образовательных целей вот эквивалент сценария оболочки.

#!/bin/sh

cbranch=`git rev-parse --abbrev-ref HEAD`
cmerge=`git config branch.$cbranch.merge`
cremote=`git config branch.$cbranch.remote`
if [ $? -eq 0 ]; then
    echo "$cremote/`git rev-parse --abbrev-ref $cmerge`"
else
    return 1
fi
...