我想要一个命令,它为我所在的分支发出被跟踪分支的名称.就像是:
$ 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
.
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 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)