问题很简单:是
refs/heads/master
和 refs/remotes/origin/master
相同吗?如果在某些情况下不相同,我该如何知道它们不相同,并了解它们的区别是什么?refs/heads/master
和 refs/remotes/origin/master
相同吗?如果在某些情况下不相同,我该如何知道它们不相同,并了解它们的区别是什么?它们是两个不同的符号名称,可以指向不同的内容。 refs/heads/master
是您的工作副本中名为 master
的分支。通常,它是 refs/remotes/origin/master
的跟踪分支,因为 origin
是由 git clone
创建的远程的默认名称,其主要分支通常也被命名为 master
。
您可以使用 git rev-list refs/heads/master..refs/remotes/origin/master
查看它们之间的差异。如果它们相同,则该命令将为空;否则,它将列出它们之间的提交。
refs/heads/
下的分支是当你有一个分支被检出时,可以通过创建新的提交来推进。 refs/remotes/
下的分支则称为“远程跟踪分支”,这些引用只是指向最后一次使用git fetch <name-of-remote>
或成功的git push
到该远程存储库相应分支时该存储库所处的提交。(我在这里写了一篇博客文章详细讨论了这个差异here)。
refs/origin/master
。它应该是refs/remotes/origin/master
。 - user229044