【问题标题】:I lost current head branch in git我在 git 中丢失了当前的 head 分支
【发布时间】:2016-04-24 16:36:30
【问题描述】:

当我从 Develop 分支切换到之前提交的分支时,head 分支是我当前的分支,但该分支没有显示在我的分支列表中 (CMD:git 分支)。

当我完成一些工作时,我不小心直接切换到开发分支,我的上帝,我失去了这些变化,我怎么能找到只是变化的部分?

【问题讨论】:

  • 请用更清晰的方式表达您的问题。不清楚你做了什么
  • 我解决了问题(git reflog git checkout HEAD@{...})
  • stackoverflow用不好,我会努力学习的。另外,英语一定要学好。现在只能靠翻译软件了。

标签: git head


【解决方案1】:

使用 reflog 找出发生了什么,然后恢复到那个点


git reflog

您也可以随时使用reflog
git reflog 将显示更新HEAD 的任何更改,并且检查所需的 reflog 条目会将HEAD 设置回此提交。

每次修改 HEAD 时,reflog 中都会有一个新条目

git reflog
git checkout HEAD@{...}

这会让你回到你想要的提交


How to find and restore added content (even if it was not commited )

使用git fsck 找出所有丢失的对象(悬空),然后您可以使用git cat-file -p <sha-1> 进行检查并恢复它们。

【讨论】:

  • 谁对所有答案投了反对票?他们都是正确的
  • 我也很困惑。
  • 即使我对不赞成票感到困惑,因为答案是正确的。赞成,因为我相信他们是正确的。
【解决方案2】:

您可以使用git reflog 来识别您的工作副本之前的位置。一旦你确定了相关的提交,你就可以通过git checkout <commit> 来回复它。

【讨论】:

  • git reset <commit> 将分支重置为“丢失”之前的HEAD? OP有点不清楚恕我直言
  • @GregoryPakosz - 这将重置develop,这可能不是我们想要的。 OP 很可能希望/需要创建一个指向该提交的单独分支。
【解决方案3】:

git reflog git checkout HEAD@{...}

谢谢大家。

【讨论】:

    猜你喜欢
    • 2014-11-11
    • 2014-01-15
    • 1970-01-01
    • 2011-08-28
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多