解决Azure DevOps中的PR冲突而无需更改源分支

时间:2019-10-15 09:19:36

标签: git azure-devops pull-request merge-conflict-resolution git-merge-conflict

我们在Azure DevOps中有两个受限制的git分支,

  • test(用于UAT环境)分支
  • master用于生产环境的分支

开发人员不能直接提交这些分支,他们必须创建PR来合并自己的分支。他们将自己的分支建立到master

如果PR被批准,则它将合并到test分支,并部署到UAT env。如果客户/用户接受test分支中的更改,我们会将这些PR合并到master分支中,以部署到产品环境中。 test分支中的PR 可能不会被客户接受,因此不会合并到master分支中。因此,我们无法将功能分支重新建立到test的基础,也不能将测试合并到这些功能分支,因为并非 test中的每个提交都将移至master

如果为test分支创建PR时发生冲突,我们必须解决此冲突而不更改源分支,并且合并提交必须保留在test分支中。我们无法基于test,因为正如我之前所说,并不是test中的每个PR都将合并到master。因此,我们将此扩展用作解决方法,但它不像Visual Studio合并工具那样有用:PR Conflict Extension

是否有任何方法可以在不使用此扩展程序和Visual Studio合并工具的情况下实现此目的?还是您可以建议另一种解决PR冲突的方法,而无需将额外的合并提交提交到源分支?

1 个答案:

答案 0 :(得分:0)

实际上,PR冲突扩展也可以解决PR冲突而无需更改源分支。

如您所见,源分支是branch1,目标分支是master。公关中有冲突。 enter image description here

在“冲突”选项卡中,可以选择“获取源文件”来解决冲突,并且它不会更改源分支。 enter image description here

完成PR后,以下是主提交和branch1提交。并且源分支(branch1)中没有任何更改。的 enter image description here enter image description here

使用Visual Studio合并工具解决合并冲突与PR冲突扩展之间只有一个区别。分支历史记录没有冲突解决提交。但这是因为Visual Studio合并工具解决了本地分支上的冲突,并将更改后的文件推送到Azure Repo,所以它只有一次有关更新的提交。

PR冲突扩展名直接修改了Azure仓库中的文件,因此提交历史记录将包括解决冲突的步骤。 enter image description here