压缩提交与非压缩提交相比如何?

How do squashed commits compare to non-squashed?

假设我有一个 master 分支和一个 dev 分支。在 dev 分支工作后,我将其压缩并合并到 master

git checkout master
git merge --squash dev 
git commit

这是一个新的提交,对吧?但是好像运行git checkout dev; git merge master吐出来already up-to-date。我不是在抱怨,但这怎么可能。应该有一个 new 提交与所有被压扁的提交冲突,不是吗?

编辑:没有错误,我只是想知道为什么没有错误。

您签出的分支就是您正在修改的分支。将更改从 dev 带到 master checkout master 并合并 dev。

if both sides do same change then it's just accepted without reporting conflict.

– max630

这不是我认为合并的方式。我假设在同一位置修改同一文件的多次提交总是会导致冲突。现在明白了。