git命令发出远程跟踪分支的名称

Rus*_*lva 20 git branch

我想要一个命令,它为我所在的分支发出被跟踪分支的名称.就像是:

$ 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
Run Code Online (Sandbox Code Playgroud)

有这样的命令吗?

Lil*_*ard 23

根据Mark Longair的要求,我之前的评论现在被复制为答案.

使用最新版本的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.

  • @MichaelMoser:您重命名了本地分支并将其推送,但您没有更新上游跟踪信息.您可以使用`-u`标志来"git push"来更改上游跟踪信息. (2认同)

Amb*_*ber 14

将发出被跟踪的遥控器:

git config branch.<branchname>.remote
Run Code Online (Sandbox Code Playgroud)

将发出在该遥控器上跟踪的ref:

git config branch.<branchname>.merge
Run Code Online (Sandbox Code Playgroud)

我不相信有一个组合命令会同时发出(至少在正常的Git中;你可以随时自己制作).


例如,对于本地master分支:

$ git config branch.master.remote
origin
$ git config branch.master.merge
refs/heads/master
Run Code Online (Sandbox Code Playgroud)

  • 使用最新版本的git,您可以使用`git rev-parse --symbolic-full-name @ {u }`为当前分支发出远程跟踪分支的名称.它会发出像refs/remotes/origin/master这样的东西.如果忽略"refs/remotes"位,这正是要求的. (9认同)

Chr*_*sen 5

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
Run Code Online (Sandbox Code Playgroud)