首页 > 解决方案 > 从 Dev 到 Master 的 Azure DevOps 拉取请求正在获取旧代码

问题描述

Azure DevOps中使用Git合并代码时,我遇到了这种情况:

7/30: 创建了一个拉取请求,将代码从Dev 分支合并到Master,选择 Squash and Merge 选项。因此,只完成了一次提交而不保留所有历史记录。

从 7 月 31 日到 8 月 6 日: 所有功能分支都已经合并到Dev 分支中,使用 Merge commit 选项保留所有提交历史记录。

现在,在 8 月 7 日: 我正在尝试将 Dev 分支合并为一次master(在每个 Sprint 结束时执行此操作)。然而,在创建拉取请求时,我注意到并引起我注意的是,在拉取请求中,我在 7/30 之前得到了较旧的更改。

在此处输入图像描述

拉取请求不应该显示/显示从 7/31 到 8/6 所做的所有更改吗?

在此处输入图像描述

标签: gitazure-devops

解决方案


我认为将显示较旧的提交,因为您最后一次合并是壁球合并。

Squash 合并允许您压缩主题分支的提交并将它们添加到默认分支上的单个新提交中。而不是将主题分支上的每个提交添加到默认分支的历史记录中。

这意味着 dev 分支上的原始提交不会合并到 master 分支。pr 中的 Commits 显示了上次合并后所有新生成的提交,但是由于您选择了 squash 合并,所以 dev 分支上的先前提交也会显示出来。

squash 合并时,最好删除源分支。这可以防止混淆,因为主题分支本身没有将其合并到默认分支的提交

文件中提到了上述参考。


推荐阅读