我想要一个命令发出我所在分支的跟踪分支的名称。例如:git命令发出远程跟踪分支的名称
$ 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
有没有这样的命令?
我想要一个命令发出我所在分支的跟踪分支的名称。例如:git命令发出远程跟踪分支的名称
$ 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
有没有这样的命令?
会发出远程被跟踪:
git config branch.<branchname>.merge
我不相信有一个联合命令,将同时发射:
git config branch.<branchname>.remote
会发出裁判远程对被跟踪一起(至少在正常的Git中,你可以自己制作)。
例如,对于本地master
分支:
$ git config branch.master.remote
origin
$ git config branch.master.merge
refs/heads/master
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
按照马克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
。
另一种方式是'%git for-each-ref --format ='%(upstream:short)'$( git symbolic-ref -q HEAD)',但我更喜欢你的。 – cdunn2001 2012-03-17 19:44:46
发现了这种技巧无法工作的场景:我用git branch -m重命名本地分支,然后按下它以创建一个新的远程分支;现在之后,你的命令(git rev-parse --symbolic-full-name @ {u})返回的值就是旧的分支名称(重命名本地分支之前的远程分支) - 我预料到新的远程分支的名称。 – MichaelMoser 2014-05-29 08:22:57
@MichaelMoser:你重命名了本地分支并推送它,但是你没有更新上游跟踪信息。您可以使用'-u'标志来'git push'来更改上游跟踪信息。 – 2014-05-30 16:58:46
正如吉特1.8.3你现在可以这样做:
git branch -vv
非常方便,因为它显示了在一旦所有地方分公司的跟踪分支,但它是不适合的脚本。
使用最新版本的git,您可以使用'git rev-parse --symbolic-full-name @ {u}'发出当前分支的远程跟踪分支的名称。它发出类似refs/remotes/origin/master的东西。如果你忽略“refs/remotes”位,这正是要求的。 – 2010-09-22 03:19:30
好的提示凯文。 :) – Amber 2010-09-22 05:41:28
@Kevin Ballard:你可以发布这个建议作为一个新的答案吗?这是非常有用的,目前还不够突出,我认为... – 2011-04-22 12:05:44