挤压合并后的Git冲突

挤压合并后的Git冲突,git,git-merge,Git,Git Merge,我有一个主分支和一个开发分支。 e、 g 然后我想发布D和E,所以我创建了一个从master、squash merge dev到release-1.0的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并将d

我有一个主分支和一个开发分支。 e、 g

然后我想发布D和E,所以我创建了一个从master、squash merge dev到release-1.0的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合并到它时,就会发生冲突


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

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

关于当前的情况,您可以将
dev
commissions
G
H
重新设置为
master
,如下所示:

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

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

是的,我知道这是使用合并挤压的正确方法。如果我真的需要从dev到master进行挤压合并,我在想是否有更好的方法来处理它而不是解决冲突。更新了我的答案。是否有方法告诉git DE squash到F,以便在下次合并时将它们视为相同的?
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