【发布时间】:2017-10-11 16:13:04
【问题描述】:
【问题讨论】:
标签: git azure-devops pull-request merge-conflict-resolution
【问题讨论】:
标签: git azure-devops pull-request merge-conflict-resolution
微软刚刚添加了基于浏览器的合并。这可能会让你摆脱小冲突的困扰。
并提供improved visualizations of the different scenarios as of Sprint 150。
您有两个选项来解决冲突,从目标分支反向集成更改(这会创建额外的合并提交),或者基于目标分支(这样可以让您的历史保持干净整洁)。
您需要在本地克隆存储库,从目标分支执行合并到您的分支,并将这些更改推送到存储库。 VSTS 将检测更改并更新拉取请求。
-------o3 PR
/
---------o1-o2 target
因此将target (o2) 合并到PR:
-------o3-o4 PR
/ /
---------o1----------o2 target
然后完成PR
-------o3-o4 PR
/ / \
---------o1----------o2--o5 target
或者,您可以在本地克隆 repo,在目标分支的最新版本上 rebase PR 分支,解决 rebase 中的所有问题并将更改强制推送回 PR 分支。 VSTS 将检测更改并更新拉取请求。
-------o3 PR
/
---------o1-o2 target
因此将o3 重新设置为o2:
-------o3 PR
/
---------o1-o2 target
然后完成PR(在下面的情况下使用Fast-forward合并):
---------o1-o2-o3 target
【讨论】:
回答@metabuddy 的问题:
然后呢?这仅显示如何在本地解决冲突,我无法将目标分支或源分支直接推送到 VSTS,因为我的分支策略需要从功能分支发出拉取请求。
您可以按照上述步骤操作。只是源分支和目标分支会略有不同。
【讨论】:
dev 分支后,右键单击Master 并从上下文菜单中选择Merge into Current Branch 选项。
您可以通过@jessiehouwing 执行上述技术或使用新插件。 MicrosoftDevLabs 发布了该插件的链接以解决冲突。插件链接如下 https://marketplace.visualstudio.com/items?itemName=ms-devlabs.conflicts-tab
【讨论】:
此答案参考@metabuddy 对@sky91 答案的评论
如果您的“master”和“master”分支中的目标分支应用了不接受直接合并的策略怎么办?
注意:考虑'master'是目标分支,'x001'是拉取请求中的源分支,'master'和'x001'分支之间存在冲突。
在这种情况下,@sky91 的解决方案将不起作用。为此,您需要按照以下步骤操作。
【讨论】: