樱桃采摘后的 Azure DevOps 拉取请求

Azure DevOps Pull Request after Cherry Picking

我正在使用 Azure DevOps 和 运行 遇到 git 和我无法理解的合并请求的情况并寻求帮助。

场景如下:

我从 dev 中挑选提交 123,将阶段的目标分支放入主题分支。然后将主题分支拉入阶段。

然后我对开发人员的提交 124 和 125 重复此过程。

如果我将开发分支中的 file.txt 与阶段分支中的 file.txt 进行比较,它们现在在内容方面是相同的。

如果我在 Azure DevOps 中提交从开发到阶段的拉取请求,在拉取请求的“文件”选项卡上,它会向我显示对 file.txt 的建议更改,就好像开发提交从未被挑选出来一样file.txt.

舞台版

我意识到当我挑选时,在阶段内创建了一个新的提交,因此阶段分支没有意识到来自开发的提交 123,124,125 已经被应用——但是 Azure DevOps 文件视图不应该知道 file.txt是一样的吗?

发生这种情况是因为您看到的差异不在源分支和目标分支之间。 diff在源分支和源分支和目标分支分叉的地方.....所以,你可能在之后的修改中修改了目标分支中的文件分支分歧。没关系,azure devops 中 PR 的差异(好吧,至少这是它在 github 和 gitlab 中的正常工作方式)并不关心它们。

提示:将其视为未完成的差异 git diff target source 而是 git diff target...source(带 3 个点)...它是这样完成的,因为如果您使用默认差异进行差异,PR 中的工作差异将是一个移动的目标。随着新修订被引入目标分支,它总是会发生变化......你会看到与源分支中执行的工作相关的东西(这会使代码审查 HELL),如果你尝试合并,git 肯定会 而不是 将尝试进入目标分支(合并过程涉及比较 2 个分支的变化情况因为它们有分歧,所以没有必要检查分支的两个尖端之间的差异。