给定以下git工作流:
根据文献资料解决冲突的方法,将文献资料(包含fb1代码)本地合并到fb2中,决定保留什么(解决冲突),然后将fb2推送到远程更新拉请求。
这很好地解决了冲突,但是将关于release-branch-1.x.x的所有工作添加到fb2中,这是我想要避免的。假设我想恢复 fb1 合并提交,那么fb1代码仍然在发布分支上,因为它是由fb2引入的。
对于如何避免这种情况,有什么想法吗?
发布于 2017-09-21 12:40:14
在大多数工作流中,每个特性分支的所有者负责使其分支与“正式”代码行保持最新(为了尽可能通用,我将调用集成分支母版,尽管它可以在各种工作流中进行开发、发布或其他名称)。因此,场景的完整序列如下所示:
Git在合并时使用两个提交的最近的共同祖先,而不是代码发散的原始点。即使没有冲突,当将来自主分支(包括 fb1 )的更改集成到fb2中时,这两个分支之间的共同祖先将是包含初始+fb1的主服务器上的一个点,如果随后从主服务器中删除fb1,则git将看到这些更改发生在主分支上,由此产生的合并将不包含这些更改。
你可以代数地想到一个合并,其中m = merge,b = base,l = left,r = right,f = feature和i = initial
m = b + diff(b,l) + diff(b,r)
m = (i + f1) + diff((i + f1), (i)) + diff((i + f1), (i + f1 + f2))
m = (i + f1) + (-f1) + (f2)
m = i + (f1 + -f1) + (f2)
m = i + f2https://stackoverflow.com/questions/46343085
复制相似问题