软重置后返回到最新提交

时间:2019-01-28 15:13:39

标签: git

我知道已经有人问过这个问题,但是没有人提供可以帮助我的解决方案。

我使用GitKraken,它显然没有用于检查历史记录中较旧提交的集成功能(我不得不测试一点,没有进行任何更改)。我现在知道我应该使用git checkout HEAD~n,而是使用软重置。因此,GitKraken仍然显示我的更改在那里并且在我重置到之后进行。但是我该如何返回到我的最新提交?检出也不起作用。

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

以任何方式可以恢复以下提交或将它们设置为HEAD?

EDIT (重复标记):所引用的线程将通过签出先前的提交来返回其预期的方式(我没有这样做)。由于我进行了软重置,因此我的master分支的HEAD不再是实际的最新提交,而是我将本地存储库重置为的提交。将git reflog与重置一起使用有助于撤消已完成的操作。

1 个答案:

答案 0 :(得分:2)

从您的reflog获取。从要执行的分支执行:

git reflog

它将在分支上输出先前操作的列表

  

59a04ab96 HEAD @ {1}:提交:...消息...

     

574c5ca23 HEAD @ {2}:提交:...消息...

这时,根据输出中的消息或哈希值在输出中找到所需的提交,并使用句柄将其重置为所需的状态:

git reset --hard HEAD@{1}