我遇到了以下情况
M--o--o------------------
B-----------------
C-----------------
我对分支B和C做了一些修改。在某一点上,我认为将合并B拉入合并C会很好。假设分支B的变更集1,2,3被拉入C。
然后我决定恢复这个合并,使用";git revert-m";
我再次在两个分支中进行了一些提交。然后我把分支C合并成M。最后我把B合并成了M.
结果:变更集1,2,3不包括在M.中
这个程序有错误吗?可能是个虫子吗?
以下是您的情况图片:
M--o--o------------------------M1-M2 <----Branch M
/ /
B--1-2-3--4----------------/--- <----Branch B
/
C---------MC--R(revert)--- <----Branch C
当你将B合并到M中时,git将只包括commit 4和以后的合并到M。这是因为1,2,3已经在已经合并的C中,没有理由再添加它们。由于C还原了这些,M中的结果将是1,2,3实际上不包括在M中。
请注意,在git中恢复合并提交并不简单。恢复合并实际上并不是";撤消合并";。但它确实删除了合并添加的内容。如果您需要恢复合并,您需要记住,未来的合并可能需要手动干预来纠正这些未来的合并。