我们的 git 开发工作流程是主题分支不断地重新基于最新的 master 直到它们被合并。
然而,一位新开发人员创建了主题分支,他在其中多次将 master 合并到他的主题分支中,以使它们保持最新。
A---B---C---D---E topic
/ / /
F---G---H---I master
虽然将这个主题分支合并到 master 是完全正确的,但它会导致一个非常混乱的历史。我想将这些主题分支转换为一个干净的线性 rebased 历史,它可以通过一个--no-ff
合并提交干净地合并到 master 中,即:
A'---B'---E' topic
/
F---G---H---I master
理想情况下,会有一些 git-fu 允许我进行变基,按原样接受主题分支上的提交,同时自动应用主题合并提交中已经可用的合并冲突解决信息,例如 C 和 D。
我知道我可以简单地应用“git diff master..topic”的补丁,然后使用 rebase 向后工作并手动将单个补丁拆分为单独的提交,但是有没有更简单和更优雅的方法?
我已经尝试过直接git rebase
和git rebase -p
命令,但没有运气。