git - 从 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 所做的所有更改吗?
解决方案
我认为将显示较旧的提交,因为您最后一次合并是壁球合并。
Squash 合并允许您压缩主题分支的提交并将它们添加到默认分支上的单个新提交中。而不是将主题分支上的每个提交添加到默认分支的历史记录中。
这意味着 dev 分支上的原始提交不会合并到 master 分支。pr 中的 Commits 显示了上次合并后所有新生成的提交,但是由于您选择了 squash 合并,所以 dev 分支上的先前提交也会显示出来。
squash 合并时,最好删除源分支。这可以防止混淆,因为主题分支本身没有将其合并到默认分支的提交。
文件中提到了上述参考。
推荐阅读
- regex - 从一组单词匹配
- xamarin - Xamarin.Forms 在 NavigationStack 上推送多个页面
- html - 如何在复选框和输入中制作边框?
- vim - 可以“重复”一个点命令吗?
- excel - 我可以制作一个宏来获取活动单元格的值并将其添加到超链接的末尾,然后按照所述链接进行操作
- algorithm - 这个图形编码练习是什么算法?
- angular - Angular HttpInterceptor 在来自服务器的 200 响应内处理令牌刷新
- java - JTable:如何获取表格的更新列和行?
- kotlin - 如何让杰克逊接受 readvalue 的泛型?
- python - numpy.add 的身份