команда git для выдачи имени удалённой ветки трекинга - PullRequest
20 голосов
/ 21 сентября 2010

Мне нужна команда, которая выдает имя отслеживаемой ветви для той ветви, в которой я работаю. Что-то вроде:

$ git checkout --track -b topic origin/master
Branch topic set up to track remote branch master from origin.
Switched to a new branch 'topic'
$ git unknown-command
origin/master

Есть ли такая команда?

Ответы [ 4 ]

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

В соответствии с запросом Марка Лонгэйра, мой предыдущий комментарий теперь воспроизводится как ответ.

В последних версиях git вы можете выдать имя ветви удаленного отслеживания для вашей текущей ветви с помощью git rev-parse --symbolic-full-name @{u},Он генерирует что-то вроде refs / remotes / origin / master.

Если вы сделаете еще один шаг и используете флаг --abbrev-ref, как в git rev-parse --symbolic-full-name --abbrev-ref @{u}, он удалит бит refs/remotes/ и оставит вастолько с коротким именем ветви, например origin/master.

14 голосов
/ 21 сентября 2010

Издаст отслеживаемый пульт:

git config branch.<branchname>.remote

Будет отправлять ссылку, отслеживаемую на этом пульте:

git config branch.<branchname>.merge

Я не верю, что есть комбинированная команда, которая будет издавать оба вместе (по крайней мере, внутри обычного Git; вы всегда можете создать свою собственную).


Например, для локальной master ветви:

$ git config branch.master.remote
origin
$ git config branch.master.merge
refs/heads/master
5 голосов
/ 22 сентября 2010
git config --global alias.show-upstream '!sh -c '\''

    test -n "$1" || set -- HEAD
    set -- "$(git rev-parse --symbolic-full-name "$1")"
    git for-each-ref --format="%(upstream:short)" "$1"


'\'' -'

git show-upstream
git show-upstream HEAD
git show-upstream some/local/branch
3 голосов
/ 28 января 2015

Начиная с git 1.8.3, вы можете сделать это:

git branch -vv 

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

...