如何在受保护的分支上解决合并冲突?

19

我有一个分支,它是从master分支中分出来的。如果你愿意的话,它更像是一个release分支。这个release分支是受保护的。

master ---> release

而从这个发布分支开始,我一直在它的基础上进行功能分支并合并:

master ---> release <--- features

现在一旦我的功能进入这个发布分支,就会出现合并冲突。这就是我的问题所在。如果不是受保护的分支,我知道如何解决冲突,但是我不确定该如何解决它。

我尝试过做类似于以下的事情:

master ---> release ---> release-fix

release-fix分支中,我会从master进行变基并推送,将该PR的基础设置为release分支。但是当我创建PR时,它仍然无法自动合并。这样做是正确的吗?

2个回答

14

我认为有多种方法可以实现这个操作,其中之一是Dherik的回答。而我通常会采取相反的方式:

  1. git fetch # 获取最新的所有内容的拷贝
  2. git checkout -b merge-release-into-master origin/master --no-track # 从master创建一个新分支
  3. git merge origin/release --no-ff # 将release分支合并到新分支中
  4. 解决所有冲突并提交。
  5. push -u merge-release-into-master # 推送你的新的merge-release-into-master分支,并将其PR到master中。现在应该可以顺利完成。

另外,如果有多个人同时以这种方式(即同时使用多个release或hotfix分支)将内容合并到主分支中,那么是否会出现冲突呢?如果没有,那么我不确定从release合并到主分支时为什么会出现冲突。


5
你可以从release分支创建一个新的分支(就像你创建release-fix一样),将"conflicted" feature合并到这个新分支上,解决冲突,并从新分支到release分支打开一个新的pull/merge请求。我不知道你提到的"自动合并",但我认为这是解决与受保护分支一起工作时描述的问题的最简单方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接