我知道已经有人问过这个问题,但是没有人提供可以帮助我的解决方案。
我使用GitKraken,它显然没有用于检查历史记录中较旧提交的集成功能(我不得不测试一点,没有进行任何更改)。我现在知道我应该使用git checkout HEAD~n
,而是使用软重置。因此,GitKraken仍然显示我的更改在那里并且在我重置到之后进行。但是我该如何返回到我的最新提交?检出也不起作用。
我不确定GitKraken是否只是显示错误,但是Git告诉我我重置为的提交是当前HEAD。似乎正确。
以任何方式可以恢复以下提交或将它们设置为HEAD?
EDIT (重复标记):所引用的线程将通过签出先前的提交来返回其预期的方式(我没有这样做)。由于我进行了软重置,因此我的master分支的HEAD不再是实际的最新提交,而是我将本地存储库重置为的提交。将git reflog
与重置一起使用有助于撤消已完成的操作。
答案 0 :(得分:2)
从您的reflog获取。从要执行的分支执行:
git reflog
它将在分支上输出先前操作的列表
59a04ab96 HEAD @ {1}:提交:...消息...
574c5ca23 HEAD @ {2}:提交:...消息...
这时,根据输出中的消息或哈希值在输出中找到所需的提交,并使用句柄将其重置为所需的状态:
git reset --hard HEAD@{1}