忘了"git rebase --continue"并做了"git commit".怎么修?

Abh*_*ash 101 git

我在git中重新定义代码,我遇到了一些合并冲突.我解决了冲突并做了:

git add
Run Code Online (Sandbox Code Playgroud)

此时我忘记了:

git rebase --continue
Run Code Online (Sandbox Code Playgroud)

我继续编码并做了:

git commit
Run Code Online (Sandbox Code Playgroud)

为了改变.现在我在"no branch",不能做:

git rebase --continue 
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

kir*_*aza 188

做吧git reset --soft HEAD^.它将HEAD指针移动到其父级,但保留工作树并将合并更改添加到索引.所以你可以git rebase --continue像以前一样继续变基.


Mat*_*rog 7

我必须尝试一下,但我认为这就是我要做的:

  1. 标记您的最新提交(或者只是在某处写下它的SHA1,这样您就不会丢失它): git tag temp
  2. git rebase --abort
  3. 再做一次.您必须再次解决合并问题.:(
  4. git rebase --continue
  5. git cherry-pick temp

这个问题是你的temp提交可能包含合并的解决方案和新代码.所以它可能会很棘手,但我会试一试,看看它是否有效.

  • 不要这样做.请参阅下面的kirikaza答案,以获得更简单/更清洁的方式.不要再次挑选樱桃挑选和解决冲突. (11认同)
  • @Abhilash请接受kirikaza的回答.我(和tandrewnichols一样)做了这个并且有一个更容易的方式(互联网似乎同意,因为答案有4倍的赞成票). (4认同)