如何将含合并结构的分支迁移至目标分支且保留原有提交结构?
解决Git分支结构调整问题
要保留D、E、F、G的原有合并结构,同时将D从C的下游移到B的下游,你需要在rebase时保留合并提交,具体操作如下:
切换到包含G的分支(假设该分支名为
feature):git checkout feature执行带
--preserve-merges(可简写为-p)参数的rebase命令,指定将C之后到G的提交(包含合并结构)迁移到B的下游:git rebase --onto B C -p
执行完成后,你会得到目标分支结构:
A -- B \ \ C D -- E -- G \ / ------F-
原理说明
--onto B:指定把目标提交系列迁移到B的末尾C:作为上游边界,仅迁移C之后的提交(即D、E、F、G)-p/--preserve-merges:让Git保留原有的合并提交结构,不会将G的合并操作展开为线性提交,从而完整保留D-E-G和D-F-G的分支关联
内容的提问来源于stack exchange,提问作者Cong Ma
相关产品推荐
相关产品推荐

