正如标题所说,我对git merge --squash
和git merge --no-commit
之间的差异并不十分清楚。
据我了解git merge
的帮助页面,这两个命令都会让我进入更新的工作树,在那里仍然可以编辑然后进行最终提交(或多次提交)。
有人可以澄清这两个选项的不同之处吗?我何时会使用一个而不是另一个?
答案 0 :(得分:75)
git merge --no-commit
这就像普通合并一样,但不会创建合并提交。此提交将是合并提交:当您查看历史记录时,您的提交将显示为正常合并。
git merge --squash
这会将更改合并到您的工作树中,而不会创建合并提交。当您提交合并的更改时,它将看起来像您的分支上的新“正常”提交:在历史记录中没有合并提交。这几乎就像你对所有合并的变化做了一个挑选。