“refs / heads / master”和Git中的“refs / remotes / origin / master”相同吗?

时间:2011-09-24 18:30:13

标签: git

问题很简单:refs/heads/masterrefs/remotes/origin/master相同吗?如果不是在某些情况下,我怎么知道它何时不存在又是什么呢?

2 个答案:

答案 0 :(得分:29)

它们是两个不同的符号名称,可以指向不同的东西。 refs/heads/master是您的工作副本中名为master的分支。这通常是refs/remotes/origin/master的跟踪分支,因为origin是由git clone创建的远程的默认名称,其主分支通常也被命名为master

你可以看到它们之间的区别git rev-list refs/heads/master..refs/remotes/origin/master如果相同则为空,否则将列出它们之间的提交。

答案 1 :(得分:24)

要理解的关键区别是refs/heads/下的分支是分支,当您签出一个分支时,您可以通过创建新的提交来推进。然而,refs/remotes/下的那些是所谓的“远程跟踪分支” - 这些引用只是指向远程存储库在上次执行git fetch <name-of-remote>时成功提交,或者成功{ {1}}到该远程存储库中的相应分支。 (我写了一篇博文,讲述了这段差异here。)