2012-04-19 200 views
1

这是我对Git的理解: -指示哪些分支跟踪哪些远程分支

如果我克隆一个存储库,那么我最初只会获得master分支的副本。然后我可以指出我想用git checkout-b标志跟踪远程分支。这按预期工作。

所以我的问题是你如何让Git告诉你这些信息。如果我输入git branch -a,那么它会显示我所有分支的混合列表,例如

* master 
    mybranch 
    remotes/origin/master 
    remotes/origin/mybranch 

我想知道的不是维护同一个名称,我怎么能告诉当地的分支机构正在跟踪什么是远程的?

谢谢。

回答

5

如果我克隆一个存储库,那么我最初只会得到一个master分支的副本。然后我可以指出我想用-b标志使用git checkout来跟踪远程分支。这按预期工作。

事实上,git checkout -b ...是你用什么来创建一个新的分支。如果您只想检出远程中已存在的分支,则不需要-b。例如,在这里我创建一个本地分支来跟踪remotes/origin/folder-hack

$ git checkout folder-hack 
Branch folder-hack set up to track remote branch folder-hack from amdragon. 
Switched to a new branch 'folder-hack' 

我想知道的是比维护其他同名的,我怎么能知道哪些地方分支机构正在跟踪哪些远程的?

每个分支在.git/config中都有相应的配置。您可以通过查看branch.<BRANCHNAME>.remote找到与分支关联的远程,并且您可以通过查看branch.<BRANCHNAME>.merge找到远程分支的名称。所以,从我前面的例子:

$ git config --get branch.folder-hack.remote 
amdragon 
$ git config --get branch.folder-hack.merge 
refs/heads/folder-hack 

您可以只运行git config --list,并期待在branch...线。

+0

谢谢,真的很有帮助 – baynezy 2012-04-19 14:02:13

0

你可以看到所有远程的分支机构和当地分行已经跟踪与遥控:

git remote show origin 
+0

更好谢谢。 – baynezy 2012-04-24 11:40:37

1

尝试

git branch -vv 

远程分支显示在同一行当地分支的跟踪它。