软重置后返回最新提交
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}
我知道有人已经问过这个问题,但是 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}