我想要合并分支develop
和upgraded
。分支upgraded
来自develop
但是大约有50个新提交(主要与其他分支合并),upgraded
中有更多更改。所以我想按顺序将develop
合并到upgraded
(通过提交提交),因为有些API更改需要更新和合并冲突。但是,当我通过简单地合并来自develop
的提交来实现它时,它会为图上的每个提交创建新连接。我真的不想要50个不必要的图形路径...
如何避免这种疯狂的图形连接? 最乐意使用Atlassian Sourcetree GUI。
答案 0 :(得分:1)
如果你已经完成了工作并且只想将所有合并压缩在一起,请参阅Squashing a sequence of small merges from master into my branch with git while keeping reference to master?(这使用命令行;它在GUI中可能是不可能的,因为GUI旨在使其易于使用做通常的事情,很少考虑到不寻常的事情。)
如果您希望将来执行此操作,git imerge
(如jthill's comment中所述)可以完成此任务。同样,它从命令行运行。
答案 1 :(得分:0)
创建一个辅助分支develop-rebase
,它指向与develop
相同的树。保留原始develop
分支,以防出现任何问题。
然后,在develop-rebase
之上重新定义upgraded
,它会按顺序应用每个提交。以交互方式进行,以便您有机会在每次提交后进行测试。
希望您在此过程中获得干净状态并应用一些补丁。
如果对你来说足够了,你可以在这里停下来。但是,如果您想要从develop
合并到upgraded
而没有中间重定位,则可以从新develop-rebase
和develop
获取差异,将其应用于{{1然后摆脱develop
。
然后,从该补丁中进行不同的原子提交,解释您如何修改develop-rebase
以使其与develop
合并,然后合并。