Meritial相当于Git的壁球合并

时间:2017-04-26 06:20:14

标签: git merge mercurial branching-and-merging

我为一个小功能创建了一个命名分支,现在我想将它合并到默认分支但不推送功能分支。

在git中,我可以git merge --squash my-feature。什么是Mercurial中的等价物还是有替代品?

1 个答案:

答案 0 :(得分:3)

Git“squash merge”根本不是合并。它使用合并机器来复制一堆其他提交的效果,以及合并基础查找机制来确定要应用的差异,但它只是将这些更改直接应用为新的,独立提交:

...--o--B--o--@    <-- you-are-here
         \
          Q--R--S   <-- stuff-you-want-to-squash

Git现在有效地git diff B S | git apply -3

Mercurial没有这个,但由于这个复制提交Q-R-S的效果并在@之后将它们添加为新提交,您可以使用{{ 1}}。如果您想保留原始hg rebase(或者有多少次提交),请参阅--keep选项,并使用Q-R-S选项获取压缩效果。