在 Bitbucket 中手动恢复后,拉取请求中未显示差异

问题描述 投票:0回答:1

我遇到了一个问题,即 Bitbucket 上的拉取请求差异中没有出现特定的更改。

涉及四个分支:my-feature-branch、develop、staging-branch 和 feature-xyz(由不同的团队成员处理)。其他团队成员将他们已完成的功能推送到暂存分支,以确保在合并到开发之前一切正常。

以下是我遵循的步骤:

  1. 我在我的功能分支中进行了更改。
  2. 我从 staging-branch 中提取了更改,其中包括来自 feature-xyz 的更改,因为它已经合并到 staging-branch 中。
  3. 在检查拉取请求中的差异后,我发现来自不同分支的不相关更改需要恢复。我们将其称为分支特征 xyz 的“xyz”更改。我手动恢复了“xyz”代码并提交了更改。
  4. 后来,另一个团队成员正在工作的feature-xyz分支被合并到develop中。
  5. 我提出了一个拉取请求,将已恢复“xyz”更改的 my-feature-branch 合并到开发中。
  6. 但是,拉取请求并未显示差异中“xyz”变化的逆转。

我期望拉取请求显示 my-feature-branch 没有“xyz”更改,因为开发已经包含从 feature-xyz 合并的更改。遗憾的是,恢复的更改已合并到开发中。但幸运的是,另一位团队成员注意到“xyz”更改已无意中恢复,因为他们期待最新版本中的此更新。

我试图理解为什么会发生这种情况以及为什么 Bitbucket 无法显示拉取请求中的差异。据我了解,Git 会比较源分支和目标分支的提交历史记录,然后显示差异。考虑到这一点,我的源分支在其提交历史记录中确实有提交(代码反转),但仍然没有被拾取。

git bitbucket
1个回答
2
投票

我不是100%确定理解你的问题:

*--*--X--a--b--c--d--e--f--g--h <- develop
       \
        1--bad--2--revert--3 <- my-feature-branch

第一点:
合并请求视图中显示的差异不是两个分支之间的差异,而是候选分支 (my-feature-branch) 与该分支与目标分支之间的

分叉点
(提交)之间的差异上图中的X)。

注意

:这个“分叉点”也称为合并基点 现在,如果您的分支的历史记录包含随后进行还原的更改,那么最终此更改不在

my-feature-branch

中(在其最顶层的提交中)。

在本地克隆上,可以使用 

三点语法

: 查看此差异 git diff develop...my-feature-branch

如果您的问题是“如果更改最终出现在 
develop

,为什么我在合并请求中看不到它?” :


此更改
    不是
  • X
    my-feature-branch
    之间差异的一部分,它出现在
    develop
    之后
    X
    它应该在为 
  • feature-xyz
  •  打开的合并请求中可见
    
© www.soinside.com 2019 - 2024. All rights reserved.