答案 0 :(得分:2)
对于两个分支之间真正常见的一组通用文件,一个解决方案确实是 rebase (在合并之前),但是假设:
如果您的提交被明确识别为“常见”或“特定主题”,那么您可以更改其顺序,使具有公共代码的提交成为您分支上的最新提交。
从那里,它很容易:
请参阅git: how do I merge between branches while keeping some changesets exclusive to one branch?
t1a--t1b--ca--cb--t1c # topic1 with some common commits in it 'ca' and cb'
t2a--t2b # second topic branch
rebase --interactive
分支上的 topic1
:
t1a--t1b--t1c'--ca'--cb' # topic1 with some common commits in most recent position
t2a--t2b # second topic branch
rebase --onto
(或者只是重置HEAD
的{{1}}和topic1
,如果checkout -b common
分支尚不存在的话),如“{ {3}}“
common
合并两个主题分支中的常见更改:
t1a--t1b--t1c' # topic1 without any common code
ca''--cb'' # common branch
t2a--t2b # second topic branch