65

正如标题所说,我不太清楚 agit merge --squash和 a之间的区别git merge --no-commit

据我了解的帮助页面git merge,这两个命令都会让我处于更新的工作树中,在那里仍然可以编辑然后进行最终提交(或多次提交)。

有人可以澄清这两个选项的区别吗?我什么时候用一个代替另一个?

4

1 回答 1

81
git merge --no-commit

这就像普通的合并,但不会创建合并提交。此提交将是合并提交:当您查看历史记录时,您的提交将显示为正常合并。

git merge --squash

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

于 2012-03-07T10:33:04.067 回答