我为一个小功能创建了一个命名分支,现在我想将它合并到默认分支但不推送功能分支。
在git中,我可以git merge --squash my-feature
。什么是Mercurial中的等价物还是有替代品?
答案 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
选项获取压缩效果。