简短的前言,我对 git 和其他基于控制台的程序的经验很少。
话虽如此,眼前的问题是,git reset --hard HEAD~由于一些损坏,我曾经回滚到之前的提交,但最终我的一次提交走得太远了。有什么方法可以撤消回滚或继续提交吗?我还没有将其同步到网络上。
git reflog | head应该显示恢复丢失的提交所需的提交 ID。
xxxxxxx HEAD@{0}: reset: moving to HEAD~
yyyyyyy Your lost commit?
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下方法
git checkout yyyyyy -b newbranch
git log newbranch
Run Code Online (Sandbox Code Playgroud)
或者
git cherry-pick yyyyyy
Run Code Online (Sandbox Code Playgroud)
git reset HEAD@{1}
Run Code Online (Sandbox Code Playgroud)
这会将您带回到重置错误之前,假设只有一次提交太远。从那里您可以再次重置到正确的提交。
git reflog
Run Code Online (Sandbox Code Playgroud)
使用它可以查看更新列表。每个更新都分配有一个 HEAD 编号(例如,HEAD@{1}: reset: blah..blah..),您可以使用此编号来指向您想要前往的位置,就像第一个命令一样。