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

Git 压缩提交与非压缩提交相比如何?,git,git-merge,merge-conflict-resolution,git-squash,Git,Git Merge,Merge Conflict Resolution,Git Squash,假设我有一个master分支和一个dev分支。在dev分支中工作之后,我将其压缩并合并到master中 git checkout master git merge --squash dev git commit 这是一个新的提交,对吗?但它似乎在运行git checkout dev;git merge master吐出的已经是最新的。我不是在抱怨,但这怎么可能呢。应该有一个新的承诺,与所有被挤压的承诺冲突,不是吗 编辑:没有错误,我只是想知道为什么没有错误。您签出的分支就是您正在修改的分支。

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

git checkout master
git merge --squash dev 
git commit
这是一个新的提交,对吗?但它似乎在运行
git checkout dev;git merge master
吐出的
已经是最新的
。我不是在抱怨,但这怎么可能呢。应该有一个新的承诺,与所有被挤压的承诺冲突,不是吗


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

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

如果双方都做了相同的更改,那么它只是被接受而没有报告冲突

–max630


我认为合并不是这样运作的。我假设在同一位置修改同一文件的多次提交总是会导致冲突。现在它有了意义。

这就是我在第一行和第二行中所做的(
git checkout master
git merge--squash dev
)您随时都可以使用
git log master
git log dev
检查您真正有哪些提交,无需假设任何事情。至于你的确切步骤,我不确定,对我来说,它合并了。如果双方的更改完全相同,它可能不会报告冲突。是的,它会合并,但我不知道这怎么可能。是的,如果双方都做相同的更改,那么它只是被接受而不会报告冲突。哦,我明白了。我认为来自同一行上的多个提交的更改,甚至相同的更改,都会产生冲突。如果你将此作为答案发布,我会将其标记为正确。