将git revert-m合并到master分支中



我遇到了以下情况

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中恢复合并提交并不简单。恢复合并实际上并不是";撤消合并";。但它确实删除了合并添加的内容。如果您需要恢复合并,您需要记住,未来的合并可能需要手动干预来纠正这些未来的合并。

最新更新