Git 壁球合并后发生冲突

Git conflicts after squash merge

我有一个主分支和一个开发分支。 例如

master: A--B--C

dev: A--B--C--D--E

然后我想发布D和E,所以我从master创建一个release-1.0分支,squash merge dev到release-1.0,所以

release-1.0: A--B--C--F(D&E)

发布后,我将 release-1.0 合并到 master。

master: A--B--C--F(D&E)

然后我继续在 dev

上进行新的更改
dev: A--B--C--D--E--G--H

当我从 master 创建 release-2.0 并将 dev 合并到它时发生冲突。

这就是我遇到的问题。我意识到这不是使用 merge squash 的正确方法,我做了一些搜索但没有找到好的解决方案。

我建议只在 devmaster 之间使用常规合并。如果你真的想压缩,你可以为它创建一个feature分支,然后在完成后将它压缩到dev中。

关于手头的情况,您可以像这样将 dev 提交 GH 变基到 master 上:

git checkout dev
git rebase --onto master <E commit hash>

这就是您最终得到的结果:

* dbd43d8 (HEAD -> dev) H
* c203a3d G
* 39a258a (master) F(D&E)
* 538454c C
* 8aa2e42 B
* 2f3facb A

然后您可以简单地快速合并 master 分支。