如何撤消 "git reset --hard ~HEAD" 后跟 "git reset ORIG_HEAD"?

How do I undo a "git reset --hard ~HEAD" followed by "git reset ORIG_HEAD"?

最初,我想将我最近的 6 次提交压缩为一次。所以我遵循了 this 答案和 运行 以下内容:

git reset --hard HEAD~3
git reset --hard HEAD~2
git reset --hard HEAD~1

然后我看到我的代码进度没有了,我怕我的进度丢了,所以我想撤消那个重置。所以我按照 this 的回答和 运行:

git reset ORIG_HEAD

在这之后,我以为我会得到我最近的代码进度,但我发现在最后一次重置后有 67 个未暂存的更改,而且代码似乎没有恢复。

那么,我现在应该怎么做才能恢复我的代码?在继续或尝试其他答案之前,我想非常确定。

通过使用 git reflog,您可以看到您的 HEAD 最近进行的所有提交。然后,您可以使用 commit-ish HEAD@{N} 返回到先前访问过的提交。

你好像换了4次HEAD,你应该试试git reset --hard HEAD@{4}

警告:如果您尝试但没有成功,它将在您再次移动 HEAD 时更改您的刷新历史记录,因此 运行 git reflog 在每次尝试失败后使用 git 消息来确定正确的提交。