假设我正在一个名为“latest”的分支上工作。完成任务后,我提交了工作。当我将更改从“master”分支合并到“latest”分支时,在解决冲突期间,我意外地接受了来自主分支的所有更改,结果在重新定位完成时,我失去了很多在“latest”中完成的工作。
考虑到我是在“latest”分支内重新定位的,那么我所做的工作的提交是否被接受的冲突解决方案覆盖?我的先前(原始)提交是否丢失?如果没有,我该如何检索它们。谢谢。
您在 latest
分支中进行的原始提交仍然可以在 git reflog 中访问。但是,当前的 latest
分支现在具有新的、重写的提交记录。您可以尝试筛选 reflog,但最快的方法可能是将 latest
硬重置为远程跟踪分支 origin/latest
:
# from latest
git reset --hard origin/latest
origin/latest
。如果是这样的话,跟踪分支应该看起来和重新设置之前一样。git reflog
,然后找到在错误的rebase之前作为你分支HEAD的提交。你可以使用提交信息来辅助查找。一旦找到了该提交的SHA-1值,再次进行硬重置。# from latest
git reset --hard <SHA-1 of your old HEAD>
reflog
。 - evolutionxbox