如何在VSTS中解决pull请求中的合并冲突?

Lie*_*ero 40 git merge-conflict-resolution pull-request azure-devops

我已经创建了拉入请求,我进入了这个:

在此输入图像描述

"批准"按钮不执行任何操作,并且已禁用完成.

如何在拉取请求中解决此问题?

jes*_*ing 42

更新

微软刚刚添加了基于浏览器的合并.这可能会让你摆脱小冲突的困境.

对于更复杂的情况:

您有两种方法可以解决冲突,反向集成来自目标分支的更改(这会创建额外的合并提交),或者在目标分支上进行rebase(这会使您的历史记录变得干净整洁).


在完成PR之前从目标分支合并到当前分支.

您需要在本地克隆repo,执行从目标分支到分支的合并,并将这些更改推送到存储库.VSTS将检测更改并更新拉取请求.

            -------o3              PR
           /
---------o1-o2                     target
Run Code Online (Sandbox Code Playgroud)

因此合并target (o2)PR:

            -------o3-o4           PR
           /          /
---------o1----------o2            target
Run Code Online (Sandbox Code Playgroud)

然后完成PR

            -------o3-o4           PR
           /          / \
---------o1----------o2--o5        target
Run Code Online (Sandbox Code Playgroud)

重新定位PR分支以包含目标上的最新更改

或者,您可以在本地克隆repo,在最新版本的目标分支上重新绑定PR分支,从rebase解决所有问题并强制将更改推回PR分支.VSTS将检测更改并更新拉取请求.

            -------o3              PR
           /
---------o1-o2                     target
Run Code Online (Sandbox Code Playgroud)

因此,重订o3o2:

              -------o3            PR
             /
---------o1-o2                     target
Run Code Online (Sandbox Code Playgroud)

然后完成PR(在下面的情况下使用快进合并):

---------o1-o2-o3                  target
Run Code Online (Sandbox Code Playgroud)


sky*_*y91 16

  1. 使用Visual Studio打开项目.
  2. 打开视图 > 团队资源管理器
  3. 切换到分支选项卡.
  4. 双击要合并的分支(例如dev).
  5. 右键单击>合并自>
    从分支中选择合并:master,
    进入当前分支:dev
  6. 单击" 合并"按钮
  7. 选择冲突文件
  8. 然后解决冲突.您可以单击要包括的部分的左侧或右侧复选框.
  9. 然后提交合并
  10. 完成.

  • 然后什么?这仅显示了如何在本地解决冲突,我无法将目标分支或源分支直接推送到 VSTS,因为我的分支策略需要从功能分支发出拉取请求。 (9认同)
  • @metabuddy:这个答案的作者假设,您正在将 dev 合并到 master 中。如果您有从功能分支到开发人员的拉取请求,您可以在本地将开发人员合并到您的功能分支,解决冲突并推送功能分支。 (2认同)

Bip*_*inR 9

您可以通过@jessiehouwing 执行上述技术或使用新插件。MicrosoftDevLabs 发布了该插件的链接以解决冲突。插件链接如下 https://marketplace.visualstudio.com/items?itemName=ms-devlabs.conflicts-tab