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

Spa*_*000 21 git

我有一个分支,是一个分支的分支masterrelease如果你愿意的话,它更像是一个分支。该release分支受到保护。

master ---> release
Run Code Online (Sandbox Code Playgroud)

从这个release分支开始,我将我的功能从它中分离出来并将其合并到:

master ---> release <--- features
Run Code Online (Sandbox Code Playgroud)

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

我尝试做的是这样的:

master ---> release ---> release-fix
Run Code Online (Sandbox Code Playgroud)

在 中release-fix,我会重新设置基础master并将其向上推,并使该 PR 的基础成为分支release。但是当我制作 PR 时,它说它仍然无法自动合并。这是做这样的事情的正确方法吗?

TTT*_*TTT 15

我认为有多种方法可以做到这一点,其中之一就是 Dherik 的答案。我通常会做相反的事情:

  1. git fetch# 获取最新所有内容的副本
  2. git checkout -b merge-release-into-master origin/master --no-track# 从master上创建一个新分支
  3. git merge origin/release --no-ff# 合并到发布分支
  4. 解决所有冲突并提交。
  5. push -u merge-release-into-master# 推出新的merge-release-into-master分支并将其 PR 到master中。现在应该一切顺利了。

附带说明一下,是否有多人以这种方式合并到 master 中(同时多个发布或修补程序分支)?如果不是,我不确定你是如何从发布到主版本中首先遇到合并冲突的。


Dhe*_*rik 5

您可以从分支创建一个新分支release(就像创建release-fix),合并这个新分支上的“冲突”功能,解决冲突并打开从新分支到该分支的新拉取/合并请求release

我不知道您提到的“自动合并”,但我认为这是解决您在使用受保护分支时描述的问题的最简单方法。