Git 的 squash 合并的 Mercurial 等价物
Mercurial equivalent for Git's squash merge
我为一个小功能创建了一个命名分支,现在我想将它合并到默认分支但不推送功能分支。
在git,我可以做到git merge --squash my-feature
。 Mercurial 中的等价物是什么,或者有替代品吗?
A Git "squash merge" 根本不是合并。它使用 merge machinery 来复制一堆其他提交的效果,并使用 merge-base-finding 机制来确定要应用哪个差异,但是它只是直接应用这些更改作为一个新的独立提交:
...--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
的效果,并将它们作为新提交添加到 @
之后,你可以使用 hg rebase
。如果你想保留原始的 Q-R-S
(或者有很多提交),请参阅 --keep
选项,以及获得压缩效果的 --collapse
选项。
我为一个小功能创建了一个命名分支,现在我想将它合并到默认分支但不推送功能分支。
在git,我可以做到git merge --squash my-feature
。 Mercurial 中的等价物是什么,或者有替代品吗?
A Git "squash merge" 根本不是合并。它使用 merge machinery 来复制一堆其他提交的效果,并使用 merge-base-finding 机制来确定要应用哪个差异,但是它只是直接应用这些更改作为一个新的独立提交:
...--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
的效果,并将它们作为新提交添加到 @
之后,你可以使用 hg rebase
。如果你想保留原始的 Q-R-S
(或者有很多提交),请参阅 --keep
选项,以及获得压缩效果的 --collapse
选项。