2

这是目前的情况。回购既有公共分支<master>,又有公共<team1>分支:

o <-- master
 \
  o <-- team1

这两个分支都被视为public

使用 Atlassian Stash 时,我们希望使用<team1>已交付的最新版本更新分支,<master>因此我们创建了一个拉取请求。源是<master>,目标是<team1>

但是,在执行该操作时,Atlassian Stash 向我们显示它由于冲突而无法合并,以下是如何为拉取请求解决它们:

在此处输入图像描述

但是本指南将导致您将合并冲突推入<master>. 为什么?

这个设置<master><team1>分支是否错误并使用拉取请求?

<team1>解决分支中的任何冲突并保持<master>完全不变(直到<team1>将交付回<master>)不是更有意义吗?

4

2 回答 2

1

这是因为任何 git pull 请求都是基于合并冲突总是在源分支而不是目标分支中解决的原则。通常,目标分支是超过 1 个人集成他们的代码库的地方,因此解决源分支中的任何冲突而不是目标分支中的冲突是有意义的。

如果你想解决这个问题,你可以签出分支并从 master 做一个 git 分支,并解决分支中的冲突并将它们向上推送

于 2014-08-13T03:58:04.790 回答
1

拉取请求通常表明您希望将代码合并“用于生产”,而 Stash 的说明基于这种情况下的冲突解决方案。

与其创建从 master 更新功能分支的拉取请求,不如执行合并并解决出现的任何冲突会更简单。

我是 Stash 的产品经理,这不是我第一次看到这种情况。我正在考虑让人们走在最安全的道路上的最佳方式,并确保给出的指导是有意义的(无论是避免不必要的拉取请求,还是优雅地处理不寻常的请求)。

于 2014-08-19T08:44:33.623 回答