繁体   English   中英

Git rebase-解决同一文件上合并冲突的多个git请求

[英]Git rebase - Multiple git requests for solving merge conflicts on the same files

为了保持更清晰的历史,我试图做一个git rebase

我在分支中有多个提交,并且在进行重新设置基准时想压缩它们。

想要的结果:

从那开始:

Master      A-B
            \
MyBranch     1-2-3-4-5-...-10-..-20

对此:

Master      A-B-C

场景

我从在主机中的提交A分支开始,然后在我的分支上工作:

Master      A
            \
MyBranch     1-2-3-4-5-...-10

当我在分支上工作时,另一个提交B在master中完成:

Master      A-B
            \
MyBranch     1-2-3-4-5-...-10

为了获得良好的CI,我首先将B提交合并到myBranch并解决了我遇到的所有冲突:

Master      A-B
            \  \
             |  ----------- merge
             |             \
MyBranch     1-2-3-4-5-...-10

然后我在分支中又进行了几次提交:

Master      A-B
            \  \
             |  ----------- merge
             |             \
MyBranch     1-2-3-4-5-...-10-...-20

然后,我开始重新设置rebase -i (使用Intellij)。

在这一阶段,我认为不再需要合并请求,因为B已合并到myBranch

但是后来,Intellij要求再次合并我之前已经合并过的相同文件。

当我解决所有冲突时,他要求我再做一次。 然后再次。 然后再次。 在同一文件上一遍又一遍。

似乎对于1 - 20提交中的每个提交(或大块提交),我都需要再次解决合并冲突。

仅在解决了大约7次冲突后,操作才结束。

为了避免这个坑,我在这里缺少什么吗?

普通的rebase -i只是忽略合并提交。 这就解释了为什么在重新定基期间必须执行与合并期间相同的冲突解决方案。 同样,一旦在重新定基期间存在合并冲突,它将在以后每次影响相同文件的提交中重复执行。

为了避免这个问题,您可以尝试git rebase --preserve-merges

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM