我有一个基于某个上游版本X的分支Z,在功能分支中开发了一些功能A,B,C然后合并回来,在某些点有上游变化X',X'& #39;重新融入Z.
X-----------X'-------X''
\ \ \
Z-------Z1--Z2---Z3--Z4------Z5
\ / \ / \ /
A1--A2 B1--B2 C1--C2
我想将我的分支Z的特征A,B,C移植到另一个分支Y(上游,如X)。为了更容易地做到这一点,我首先要像这样解开Z:
X--X'--X''
\
Z-------Z1------Z2------Z3
\ /\ /\ /
A1--A2 B1--B2 C1--C2
我的第一个想法是使用git rebase --onto X'' X Z3
,它有效但杀死了所有合并,所以结果看起来更像
X''--A1--A2--B1--B2--C1--C2
我的下一次尝试是git rebase --preserve-merges --onto X'' X Z3
,它确实......什么都没有?嗯,我想我确实告诉它保留合并,但我想保持我的"功能合并"扔掉" reintegration-merges"。
关于如何实现这一目标的任何想法或我做错了什么?
目前看来我必须通过仔细挑选和/或重新定位和重新合并我的功能分支来手动重新创建分支。
另一种选择是将功能分支压缩在一起,这样我就不必保留合并。