如何更简便地压缩后续会分叉为多分支的Git提交?
Git提交压缩后多分支自动继承的通用方法
假设分支1和分支2未来无需合并(比如分支1适配Windows,分支2适配MacOS),初始分支结构如下:
A ---> B ---> C ---> D ---> E ---> F (branch1) \ \ G ---> H ---> I (branch2)
我想把提交C压缩进B中。在branch1的F节点执行git rebase后,得到的分支结构是:
A ---> BC ---> D' ---> E' ---> F' (branch1) \ \ B ---> C ---> D ---> G ---> H ---> I (branch2)
但(BC, D')和(B, C, D)的变更完全一致,我期望的理想结构是:
A ---> BC ---> D' ---> E' ---> F' (branch1) \ \ G' ---> H' ---> I' (branch2)
目前我能想到的方法是在D'和D处分别创建临时分支branchD'和branchD,然后执行:
git rebase --onto branchD branchD' branch2
但这套流程需要两次rebase、创建两个临时分支,太繁琐了。如果有10个从D分叉出的分支,甚至这些分支还继续分叉,操作成本会非常高。
我想知道:有没有通用的提交压缩方法,不需要逐个处理所有分叉分支,让它们自动继承压缩后的提交?毕竟(B, C)和BC的变更完全相同,这种“上下文无关”的压缩操作应该是合理的需求:
压缩前:
merge from many branches ---> B ---> C ---> fork into many branches \\ \/ \\ \/ \\_____ there could be bypass here _____/
压缩后期望:
merge from many branches --------> BC --------> fork into many branches \\ \/ \\ \/ \\_____ there could be bypass here _____/
我是Git新手,若有理解错误或存在简单可行的解决方案,欢迎指正。
内容的提问来源于stack exchange,提问作者idAY4yuho7
相关产品推荐
相关产品推荐

