【发布时间】:2021-03-31 17:24:36
【问题描述】:
我一直在寻找,我找不到这样的场景(我希望我能解释清楚)。
在我的公司中,我们使用具有三个分支的 git(带有 bitbucket):“dev”、“release”和“master”。作为一个开发团队,我们只能访问“dev”,我们需要提出一个“pull request”来与其他分支合并。路径应该是:
(local) -> "dev" -> (pull request) -> "release" -> (pull request) -> "master".
但是一年前,有人只从“dev”合并到“release”,而“master”已经过时了。团队的其他成员做了一些从“dev”到“release”的合并,所以,“master”再次过时了。但是现在,当我们尝试从“release”合并到“master”时,我们注意到的第一件事是“master”的“pull request”包含了“release”中存在的所有提交,它会抛出一个错误告诉我们存在冲突,必须手动修复。
问题是我们无权访问“master”,根据 bitbucket 显示的说明,我们需要结帐到“release”,进行更正并再次合并到“master”,但是如果我结帐到“发布”我没有看到代码中的冲突并且无法修复它们。
我发现冲突必须由有权访问“master”的人解决,但我想知道是否有办法在不直接接触“master”的情况下进行合并?我不知道,也许是通过“拉取请求”,但对于过去的提交(虽然我没有看到那个选项)......或者我们能做什么?
我希望我解释得很好,你可以帮助我。
非常感谢阅读!
【问题讨论】:
-
发行版中是否存在对 master 的更改?
-
@dan1st 不,问题出在“Realease”中的两次提交中修改的文件中,当尝试与“Master”进行合并时,此文件导致冲突
-
你使用什么合并策略? (rebase/3-way-merge 或 squash)
-
"we don't have access to master" 你的意思是你不能推送到 master 吗?或者您甚至没有本地仓库中的 master 历史?