Git merge –squash和–no-commit之间的区别

正如标题所说,我不清楚git merge --squashgit merge --no-commit之间的区别。

据我了解git merge的帮助页面,这两个命令会让我在一个更新的工作树,仍然有可能编辑,然后做最后的提交(或多个提交)。

有人能澄清这两种select的区别吗? 我什么时候使用一个而不是另一个?

 git merge --no-commit 

这就像一个正常的合并,但不会创build一个合并提交。 这个提交将是一个合并提交:当你看历史,你的提交将显示为一个正常的合并。

 git merge --squash 

这会将更改合并到工作树中,而不会创build合并提交。 当您提交合并的更改时,它将看起来像您的分支上的一个新的“正常”提交:没有历史上的合并提交。 这几乎就像你对所有合并的变化进行了挑选。