【问题标题】:Git remote origin has two branchesGit远程起源有两个分支
【发布时间】:2011-09-26 23:16:40
【问题描述】:

我正在为 Windows 使用 TortoiseGit。我在远程/原点上看到两个分支:

HEAD        20 minutes ago      Some commit message.
master      20 minutes ago      Some commit message.

我很困惑为什么 HEAD 显示为一个分支;我没有明确地在原点上创建一个单独的分支——它应该只是“主”。这不是一个真正的问题,因为它们似乎无论如何都会一起更新。

如果我在 origin 上执行git branch,它只会显示“master”。

为什么有两个分支?这是特定于 TortoiseGit 的东西,还是特定于 Git 的东西?谢谢!

【问题讨论】:

    标签: git git-branch tortoisegit head master


    【解决方案1】:

    这是一个特定于 git 的东西。 HEAD 是对当前签出的事物的引用,即通常是一个分支。在您的情况下,HEAD 只是master 的别名。 TortoiseGit 显然无法从普通分支中分辨出别名(“符号引用”),因此看起来HEAD 是一个额外的分支,而实际上并非如此。

    对于通常根本没有检查任何内容的远程存储库,情况有点不同。您似乎在这里查看远程存储库。在这种情况下,该存储库的HEAD 用于确定当有人克隆该存储库时默认签出哪个分支。这就是为什么当你克隆时,某个分支或另一个被签出:git 不只是随机选择一个分支,而是查看源存储库的 HEAD 来做出决定。

    【讨论】:

      【解决方案2】:

      HEAD 是当前版本。 this question 最好在这里回答。它将与当前签出的 ref 完全相同。

      【讨论】:

        【解决方案3】:

        HEAD 是远程 repo 的当前“头”,通常与 master 相同。它是当前签出的分支/引用,来自 repo 中的 .git/HEAD 文件,其内容如下:

        ref: refs/heads/master
        

        【讨论】:

          猜你喜欢
          • 2013-05-23
          • 2014-07-31
          • 1970-01-01
          • 2013-04-29
          • 2012-10-22
          • 1970-01-01
          • 1970-01-01
          • 2014-08-22
          • 2015-03-25
          相关资源
          最近更新 更多