我正在使用TortoiseGit for Windows。我在远程/原点看到两个分支:
HEAD 20 minutes ago Some commit message.
master 20 minutes ago Some commit message.
我很困惑为什么HEAD显示为分支;我没有明确地在原点上创建一个单独的分支 - 它应该只是'master'。这不是一个真正的问题,因为无论如何它们似乎一起更新。
如果我在原点上执行git branch
,它只显示'master'。
为什么有两个分支?这是特定于TortoiseGit的东西,还是特定于Git的东西?谢谢!
答案 0 :(得分:1)
这是一个特定于git的东西。 HEAD
是对当前已检出的内容的引用,即通常是分支。在您的情况下,HEAD
只是master
的别名。 TortoiseGit显然不能告诉普通分支的别名(“符号引用”),所以看起来好像HEAD
是一个额外的分支,而实际上并非如此。
远程存储库的情况有点不同,远程存储库通常根本没有检出任何东西。您似乎在这里查看远程存储库。在这种情况下,当某人克隆该存储库时,该存储库的HEAD
用于确定默认检出哪个分支。这就是为什么,当你克隆时,会检查一些分支或另一个分支:git不只是随机选择一个分支,而是查看源存储库的HEAD
来做出决定。
答案 1 :(得分:0)
HEAD
是当前版本。这里最好由this question回答。它与当前签出的参考文件完全相同。
答案 2 :(得分:0)
HEAD是远程仓库的当前“头部”,通常与主机相同。它是当前签出的分支/ ref,来自repo中的.git/HEAD
文件,其内容如下:
ref: refs/heads/master