21

在使用--track(或保留默认值,或--notrack)创建分支后,您稍后希望被提醒分支正在跟踪什么。除了搜索 .git/config 文件之外,还有其他方法可以显示分支正在跟踪的内容吗?

4

5 回答 5

31

用途:git branch -vv查看哪些分支被跟踪,哪些没有。

于 2010-09-02T22:28:45.373 回答
8

请注意,使用git1.8.3 (April 22d, 2013),您有一种强调上游分支的新方法:

" " 学会了用不同的颜色(默认为蓝色git branch -vv绘制它与之集成的分支的名称。color.branch.upstream

C:\prog\git\git>git branch -vv
* master 118f60e [origin/master] Sync with maint
                  ^^^^^^^^^^^^^
                       |
                       --- now in blue
于 2013-04-23T06:53:49.610 回答
7

如果你想知道给定的分支,你可以这样做:

git config --get branch.<branch>.remote

如果它打印一个遥控器,它正在跟踪某些东西。如果它什么都不打印并返回失败,则不是。

于 2010-09-02T23:54:39.323 回答
2

如果您需要以自动方式访问此信息,您将希望避免尝试解析branch -vv( slebetman's answer ) 的输出。

Git 提供了一组具有稳定接口和输出格式的低级命令。这些命令(称为“管道”)是“脚本”目的的首选接口。git for-each-ref命令可以通过令牌提供所需的信息(upstream在 Git 1.6.3 及更高版本中可用):

% git for-each-ref --shell --format='

b=%(refname:short) u=%(upstream:short)
# Make a fancy report or do something scripty with the values.
if test -n "$u"; then
  printf "%s merges from %s\n" "$b" "$u" 
else
  printf "%s does not merge from anything\n" "$b" 
fi

' refs/heads/ | sh
master merges from origin/master
other does not merge from anything
pu merges from origin/pu
于 2010-09-03T04:35:14.857 回答
-1

感谢您的提示Jefromi

使用以下命令,您可以获得特定分支的远程跟踪分支。

git config --get branch.<branch>.merge

要更改远程跟踪分支,您只需更改此配置值即可。

git branch -vv注意:这是(已在此处回答)
git branch -u使现有的 Git 分支跟踪远程分支?)的替代方法

于 2016-11-02T11:46:19.040 回答