合并git分支时出现的问题

问题描述

我一直在寻找,找不到这样的场景(希望我能解释清楚)。

在我的公司中,我们使用具有三个分支的 git(带有 bitbucket):“dev”、“release”和“master”。作为开发团队,我们只能访问“dev”,我们需要提出“pull request”以与其他分支合并。路径应该是:

(local) -> "dev" -> (pull request) -> "release" -> (pull request) -> "master".

但一年前,有人只从“dev”合并到“release”,而“master”已经过时了。团队的其他成员做了一些从“开发”到“发布”的合并,因此,“大师”再次过时了。但是现在,当我们尝试从“release”合并到“master”时,我们注意到的第一件事是“pull request”到“master”包含所有存在于“release”中的提交,并且它抛出一个错误告诉我们存在冲突,必须手动修复。

问题是我们无法访问“master”,根据bitbucket显示的说明,我们需要checkout到“release”,进行更正并再次合并到“master”,但是如果我结帐到“发布”我没有看到代码中的冲突,也无法修复它们。

我发现冲突必须由有权访问“master”的人解决,但我想知道是否有办法在不直接接触“master”的情况下进行合并?我不知道,也许是通过执行“拉取请求”但对于过去的提交(虽然我没有看到该选项)...或者我们可以做什么?

我希望我解释得很好,你可以帮助我。

非常感谢阅读!

解决方法

合并冲突是对称的:如果您在本地克隆的 master 中合并 release,您将遇到与您在 bitbucket 上看到的完全相同的冲突。

所以你可以:

  • master 合并到 release
  • 修复冲突
  • 将结果推送到 release

之后:打开 PR 将 release 合并到 master 将不再引发冲突。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...