我正在帮助将一个长期运行的项目集成回主线。想要回归的功能分支之一本身就是许多其他“迷你功能”分支的章鱼合并(不是单个章鱼合并,而是随着时间的推移进行的多次合并)。
这些迷你功能分支中的每一个都散布在其独特的内容中,一组共同的提交被精心挑选到每个相应的迷你功能分支中。我想在合并回主线之前清理所有这些常见的提交。
可能相关的是功能分支的当前状态是“正确的”,即代码的外观是它应该看起来的样子。
我尝试过的选项:
- 直截了当
rebase -i
:导致了很多冲突,可能是因为樱桃挑选已应用于多个迷你功能分支并已解决 rebase -i -p
:这导致完全相同的分支结构与重复的常见提交
在正常情况下,我会简单地挥动投降的白旗并进行壁球合并。但是,我需要做的是用一组新的和改进的常见提交替换这些常见提交——这表明 rebase 是最合适的继续方式。
理想的做法是使用rebase -i
冲突解决策略,尝试通过选择使结果看起来最像最终目标(当前章鱼特征分支)的冲突选项来解决冲突。但我不知道如何告诉 git 这样做。
我的问题:
- 有什么方法可以告诉 git 以上述方式解决冲突吗?
- 有没有更好、更清洁的方法来实现我的目标?
- 我是否愿意使用 rebase 手动重建这些迷你功能分支?