【问题标题】:Git HEAD detached from master branch when listing branches列出分支时 Git HEAD 与主分支分离
【发布时间】:2015-12-24 15:06:26
【问题描述】:

我以为我将 HEAD 理解为“当前”分支,但在列出分支时,我发现我的当前和远程 HEAD 对于我的一个存储库是不同的。另一个存储库甚至没有列出远程头分支。有人可以解释一下:

me@portalinux ~/edcourse $ git branch -va
* master                9de94d9 Work on week 3 stuff thursday 
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 9de94d9 Work on week 3 stuff thursday

如您所见,origin/HEAD 似乎只是指向 master。但在以下 repo 中却没有:

me@portalinux ~/cpp $ git branch -va
* master             f30bc16 End of chapter 2
  remotes/cpp/master f30bc16 End of chapter 2

我处理存储库的方式之间的唯一区别是第一个存储库由两个不同的客户端初始化和更新,第二个存储库仅由一台计算机更新。一旦我开始使用第二台计算机进行更新,将有兴趣查看第二个 repo 是否获得指向 master 的远程 HEAD。

【问题讨论】:

    标签: git repository branch


    【解决方案1】:

    HEAD 指向当前分支的想法非常接近,但请注意,它可能并不总是如此。例如,在“分离头”状态下,它可能指向任意提交。

    共享 Git 存储库通常以 bare repositories 实现,这意味着它们缺少工作副本。本质上,它们仅作为.git/ 目录存在。在没有工作副本的情况下,“当前分支”的概念没有意义,因此远程通常没有HEAD

    一些遥控器确实有一个HEAD,例如一个非裸遥控器。 GitHub 使用 HEAD 来标识 "default branch",这是一个 GitHub 特定的概念。其他供应商可能会效仿,或将其用于完全不同的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-28
      • 2014-04-17
      • 2021-09-09
      • 2023-04-09
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多