1

这是我对 Git 的理解:-

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

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

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

我想知道的是除了保持相同的名称之外,我怎样才能知道哪些本地分支正在跟踪哪些远程分支?

谢谢。

4

3 回答 3

5

如果我克隆一个存储库,那么我最初只会获得主分支的副本。然后我可以表明我想使用带有 -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...线条。

于 2012-04-19T13:38:27.687 回答
1

尝试

git branch -vv

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

于 2012-07-10T03:01:06.787 回答
0

您可以通过以下方式查看所有远程分支以及哪些本地分支已经跟踪远程:

git remote show origin
于 2012-04-19T15:03:16.860 回答