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 的正确方法,我做了一些搜索但没有找到好的解决方案。
我建议只在 dev
和 master
之间使用常规合并。如果你真的想压缩,你可以为它创建一个feature
分支,然后在完成后将它压缩到dev中。
关于手头的情况,您可以像这样将 dev
提交 G
和 H
变基到 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
分支。
我有一个主分支和一个开发分支。 例如
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 的正确方法,我做了一些搜索但没有找到好的解决方案。
我建议只在 dev
和 master
之间使用常规合并。如果你真的想压缩,你可以为它创建一个feature
分支,然后在完成后将它压缩到dev中。
关于手头的情况,您可以像这样将 dev
提交 G
和 H
变基到 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
分支。