【问题标题】:Updating git repository in a 'Detach Head' state在“分离头”状态下更新 git 存储库
【发布时间】:2012-11-01 07:15:09
【问题描述】:

如果我的 git 存储库处于 'Detach Head' 状态,当我执行 'git pull' 时,它仍然可以 远程拉入新的提交。

我在执行 'git pull' 后看到了新的提交。

我的问题是“如果我的存储库处于分离头”状态,并且我已经做了一些本地提交(没有推送)然后我做了“git pull”,我看到了新的提交,但是我的本地提交已经消失了.

这是为什么呢?以及在哪里/如何查看我的本地提交?

谢谢。

【问题讨论】:

    标签: git


    【解决方案1】:

    通常,HEAD 指针是指向实际引用(通常是分支)的符号引用。你可以对此做出承诺。当您处于分离的 HEAD 状态时,HEAD 指针直接指向提交而不是实际引用。此时提交将保存数据,但会使其无法访问。如果您切换到实际的分支,则没有直接的方法可以切换回您所做的新提交。

    解决方案是从您正在使用git branch foo 的位置剪切一个分支。现在,如果您切换分支,您仍然可以切换回包含新提交的新创建的 foo 分支。

    【讨论】:

      【解决方案2】:

      你不应该分心!
      当您意识到自己处于超然状态(并且希望做出改变)时,您需要:

      git checkout -b someBranch
      

      鉴于您已经进行了更改并提交了它们,一旦您丢失了它们,您将需要执行以下操作:

      git branch someBranch HEAD@{1}
      

      您可以查看this了解更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 2014-01-14
        • 2021-03-05
        • 2015-09-08
        • 2018-04-12
        相关资源
        最近更新 更多