软重置后返回最新提交

Get back to latest commit after soft reset

我知道有人已经问过这个问题,但是 none 提供了一个对我有帮助的解决方案。

我使用 GitKraken,它显然没有用于检查历史中较旧提交的集成功能(我不得不测试了一下,没有进行任何更改)。我现在知道我应该使用 git checkout HEAD~n 而不是使用软重置。所以 GitKraken 仍然显示我的更改在那里,并且在我重置为的那个之后。但是我怎样才能回到我最近的提交呢?签出也不行。

我不确定 GitKraken 是否显示错误,但 Git 告诉我我重置的提交是当前的 HEAD。似乎是正确的。

有什么方法可以恢复以下提交或将它们设置为 HEAD?

EDIT 用于重复标记:引用的线程是关于通过检查以前的提交返回到预期的方式(我没有这样做)。由于我进行了软重置,因此我的主分支的 HEAD 不再是实际的最新提交,而是我将本地存储库重置为的那个。使用 git reflog 和重置有助于撤消已完成的操作。

从分行reflog获取。

git reflog [show] [log-options] [<ref>]

所以在你的情况下

git reflog branch-to-be-fixed

它会输出之前在分支上的操作列表

59a04ab96 branch-to-be-fixed@{1}: commit: ...message...

574c5ca23 branch-to-be-fixed@{2}: commit: ...message...

此时,根据消息或哈希在输出中找到您需要的提交,并使用句柄重置为您想要的状态:

git reset --hard branch-to-be-fixed@{1}