在Git Rebase期间,在使用--continue时,什么时候会提交冲突解决方案

时间:2015-12-24 03:05:35

标签: git git-rebase

我们正在运行git rebase并遇到冲突,我们需要使用 - 在解决合并冲突后继续。但是,一旦解决了冲突,我习惯于手动运行提交。既然我们在整个rebase完成时都没有看到额外的提交,那么什么时候会提交冲突解决方案呢?

2 个答案:

答案 0 :(得分:2)

在rebase期间发生的任何冲突解决方案都属于rebase创建的新提交。

所以直接回答这个问题:

  

什么时候提交冲突解决方案?

...在--continue之后,但在整个rebase命令完成并且分支指针更新后有效。

从局外人的角度来看,已经重新定位的分支看起来像是在分支后立即完成的工作,并且不需要任何冲突解决,因为工作是在该内容之上进行的。

这有时比合并更可取,因为如果没有那么多(可能)无意义的合并提交,提交历史可以更容易推理

答案 1 :(得分:2)

将rebase视为只写一个新的提交序列,重新应用在新头上重新提交的提交是有帮助的。如果每个提交都可以自动应用,那就太好了。如果无法自动应用提交,git告诉您,将索引保留为可以表示的最佳状态,并对冲突的文件进行适当标记,然后在告诉它继续使用rebase之后,事情如下:< / p>

如果git rebase --continue在索引中发现未提交的更改,则会假定更改构成已解决的冲突,并提交它。它会提示输入提交消息,并将其用于该提交,然后在最初导致冲突的提交之后恢复重新设置其余提交。

如果git rebase --continue没有看到任何未提交的内容,则会假定冲突已被手动解析并提交,因此它只会继续使用rebase中的其余提交。