首页 > 解决方案 > 恢复 git 分离的头部提交

问题描述

我使用 IntelliJ 将更改推送到带有分离头的分支。它给了我一个模糊的警告,但没有强迫就接受了我的推动。然后我检查了分支,我的所有更改都消失了。他们在哪里,我如何让他们回来?

标签: git-detached-head

解决方案


如果你输入 git reflog,它会显示 HEAD 所指向的修订历史。你分离的头应该在那里。找到它后,执行 git checkout -b my-new-branch abc123 或 git branch my-new-branch abc123 (其中 abc123 是分离的 HEAD 的 SHA-1)来创建一个指向分离头的新分支。现在您可以随意合并该分支。

一般来说,如果你在一个分离的头上工作后签出一个分支,Git 应该告诉你从你一直在分离的头上的提交,所以你可以在需要时恢复它。我从未使用过 SourceTree,所以我不知道它是否会转发该消息。但如果它确实显示了该消息,那么您应该能够使用它来查找提交,然后再次使用 git checkout -b 或 git branch 从该提交创建一个分支。


推荐阅读