我知道有人已经问过这个问题,但没有人提供帮助我的解决方案。
我使用 GitKraken,它显然没有用于检查历史中较旧提交的集成功能(我必须测试一下,没有进行任何更改)。我现在知道我应该使用git checkout HEAD~n而是使用软重置。所以 GitKraken 仍然显示我的更改在那里并且在我重置的更改之后出现。但是我怎样才能回到我最近的提交呢?退房也不起作用。
我不确定 GitKraken 是否只是显示错误,但 Git 告诉我我重置的提交是当前的 HEAD。似乎是正确的。
有什么方法可以恢复以下提交或将它们设置为 HEAD?
编辑重复标签:引用的线程是关于通过检查以前的提交来返回它的预期方式(我没有这样做)。由于我进行了软重置,因此我的主分支的 HEAD 不再是实际的最新提交,而是我将本地存储库重置为的那个。git reflog与重置一起使用有助于撤消已完成的操作。
从分支的reflog获取它。
git reflog [显示] [日志选项] [<ref>]
所以在你的情况下
git reflog branch-to-be-fixed
Run Code Online (Sandbox Code Playgroud)
它将输出分支上先前操作的列表
59a04ab96 要修复的分支@{1}:提交:...消息...
574c5ca23 要修复的分支@{2}:提交:...消息...
此时,根据其消息或哈希在输出中发现您需要的提交,并使用句柄重置为您想要的状态:
git reset --hard branch-to-be-fixed@{1}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |