Azure连续PR合并后,PR2的‘基于提交’未更新问题求助
解决Azure DevOps合并PR后PR diff基准未更新的问题
问题本质
Azure DevOps的Pull Request默认会以PR创建时目标分支的快照作为diff对比基准。即使你通过Fast Forward合并PR1,让master分支指针直接跳到了提交C,PR2的基准不会自动切换到C,仍会保留创建时的A作为对比起点,导致Files标签显示A到D的diff。
手动调整PR基准的步骤
本地更新并重构Feature2分支
- 拉取master分支最新代码(已包含提交C):
git checkout master && git pull - 切换到Feature2分支:
git checkout Feature2 - 将Feature2的提交D重新基于最新的master(即提交C):
git rebase master- 若出现冲突,解决冲突后执行
git add .,再运行git rebase --continue完成重构
- 若出现冲突,解决冲突后执行
- 安全推送重构后的分支到远程:
git push --force-with-lease origin Feature2- 使用
--force-with-lease可避免误覆盖远程分支上其他人的提交,比直接--force更安全
- 使用
- 拉取master分支最新代码(已包含提交C):
刷新Azure DevOps中的PR2
回到PR2页面刷新后,Files标签的diff会自动更新为提交C到D的变更,符合预期。
补充说明
Fast Forward合并仅移动目标分支的指针,不会触发Azure DevOps自动更新已有PR的对比基准。只有当PR的源分支(Feature2)被重构为基于目标分支的最新提交时,PR的diff基准才会同步更新,Files标签就能直接显示你需要的差异。
内容的提问来源于stack exchange,提问作者MaKruQ
相关产品推荐
相关产品推荐

