我想要一个命令,它为我所在的分支发出被跟踪分支的名称。类似的东西:
$ 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
有这样的命令吗?
答案 0 :(得分: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
。
答案 1 :(得分:14)
将发出正在跟踪的遥控器:
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
答案 2 :(得分: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
答案 3 :(得分:3)
从git 1.8.3开始,你现在可以这样做:
git branch -vv
非常方便,因为它一次显示所有本地分支的跟踪分支,但它不适合编写脚本。