还原一个git rebase补丁

Les*_*sto 2 git rebase

我正处于一个大的基础调整之中,充满了很多冲突。

刚刚发现了几个,git rebase --continue实际上我不小心删除了一个文件而不是另一个文件。

如何才能恢复正常并解决此问题,然后重新应用补丁?

编辑:--abort 不是解决方案,因为我将不得不再次做所有补丁。我只想放弃其中的一部分

jth*_*ill 6

您回购中的所有内容都会保留在那里,直到git看到至少一个月以来,通过任何引用它都完全无法访问1

因此,您已经完成了的等效工作git rebase master topic,自分支机构以来说了26个关于主题的AZ,而您所做的事情实际上是对O的重新定位的糟糕,直到S才真正发挥出全部作用:

     A...O...Z        topic
    /
...b....*             master
         \
          A2..O2..S2  the inflight rebase with the mistake in the rebased O, O2
Run Code Online (Sandbox Code Playgroud)

你的退出是

git tag restart O2~
git rebase --abort
git rebase --onto restart O^ topic
Run Code Online (Sandbox Code Playgroud)

现在您只需要重做被oop感染的提交。

如果有好的零件在O2〜..S2系列的提交,您要检索解决冲突,您可以标记S2为好,然后重做期间刚刚从这些提交检查出的好的部分,git checkout -p boneyard~3 -- goodpart1 goodpart2 etc etc(即” ve将S2标记为“骨骼”,好的部分在P2中)

我已经完成了此工作,重新设置了基准并不得不重做。如果每个人都在一件事或另一件事上做到了,我不会感到惊讶。即使对于像您这样的看似可怕的案件,这也没什么大不了的。


1您可以提前强制截断。不要那样做