为什么未变灰的提交没有在PR的“差异”标签上添加任何差异?

时间:2018-08-17 17:59:44

标签: git merge bitbucket pull-request

我正在一个BitBucket存储库中,该存储库具有3个主要分支:

1. develop
    |  |
    |  |->release/7.10 (newer)
    |
    |->release/7.09 (older)

激活自动PR复制的方式是,指向7.09的PR会被复制到7.10并进行开发,而指向7.10的PR只会像这样复制到develop图(数字按时间顺序排列):

当时刻1发生时,时刻2和3会自动发生。复制从右到左采用代码。我们的开发人员使用刚刚创建的新分支(如绿色箭头)的代码来创建PR。但是有时将代码复制到其他分支时会发生冲突。

时刻4发生时,它没有成功复制到7.10中。在执行任何其他操作之前,feature3和Feature4在7.09上合并,并进入“要复制的代码等待冲突”行。

请注意,虽然7.09可以合并所有功能,但7.10却是一团糟。如果在第5时刻生成的自动复制PR被拒绝,那么从第7时刻开始的复制也将丢失,并且来自Feature3和Feature4的所有代码也将从自动复制中丢失。因此,为了解决此问题,我们的开发人员在7.10的第8时刻创建了一个新分支,从7.09中提取了代码(从Feature2到Feature4),手动解决了冲突并创建了一个新的PR,当合并时,如图9所示,自动从5和7时刻合并PR。

在解释了这一点之后,我们来看一个真正的问题:

  1. 开发人员创建了一个新的PR来解决复制冲突,该冲突阻止将多个提交应用于开发分支(上图在7.10上显示了此问题,这是相同的,但是在{{1 }}分支),包括自己的代码。所有图像均来自同一PR:

enter image description here

  1. 他错误地仅添加了冲突文件,并进行了一次新提交,从而解决了他的问题。但是他忽略了所有先前因自动复制冲突而被阻止的PR。这是对这个新的最后一次提交的更改,与develop相同: enter image description here

  2. 以下是先前PR的一些提交,由于上述冲突,这些提交并未自动复制: enter image description here

在第二张图片中,在红色矩形内的组合上,我可以看到图片3上列出的每个提交的差异。但是,选择All changes in this pull request时,它仅显示了最后一个提交差异。合并此PR后,第3张图片中显示的所有提交都将丢失,必须按用户手动添加。它们发生了什么,为什么不将它们复制到有冲突的文件中?如果确实不是PR的一部分,为什么将它们列为非灰色提交?

0 个答案:

没有答案