理解本地Git分支如何“跟踪”远程分支

5
这是 branch -agit-sh 输出:

enter image description here

这里的右箭头 -> 是什么意思?
与跟踪有关吗?
(据我所知,红色分支是来自远程存储库的只读分支。
我知道,在我的本地GIT存储库中创建的分支必须配置为跟踪远程GIT上的特定分支(这样像pull这样的命令就可以工作而不需要指定远程分支)。
我知道在这个存储库中,唯一应该配置的跟踪是将我的本地主分支配置到源主分支。)

1
要显示跟踪信息,您必须将“-vv”传递给“git branch”。 - knittl
你知道那个带箭头的行代表什么吗? - chad
那是一个符号引用。Sym-ref 不指向特定的提交,而是指向另一个引用(就像普通的 HEAD 特殊引用一样)。 - knittl
@knittl,这就引出了一个问题:为什么文本显示为-> origin/master而不是-> remotes/origin/master?这种不一致的原因是什么? - Pacerier
@Pacerier:大多数情况下,您可以省略remotes/部分。我不知道这背后的原因。除非您有一个同名的本地分支,否则您可以直接使用origin/master(视觉上更简洁)。 - knittl
显示剩余2条评论
1个回答

3
箭头只是一个符号化的引用,显示远程origin/HEAD分支和远程origin/master分支之间的间接层。
为了查看跟踪,您需要添加一个标志来触发更高级别的详细信息。以下是使用-vv标志的相同命令的输出。 enter image description here
-vv标志向每个分支的输出添加了详细信息。考虑主分支的行。它现在给出了该分支的头提交的SHA-1哈希,然后在括号中告诉我们主分支正在跟踪的远程分支 - origin/master。当我们克隆本地repo时,git建立了这个跟踪;主分支是唯一自动配置跟踪的分支。
接下来,我还配置了我的本地bDev分支以跟踪origin远程上同名的分支。请注意,本地和跟踪的远程分支不必具有相同的名称,但这很常见。

我从@knittl的评论中得出了自己的答案。 - chad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接