Azure DevOps中PR合并后Develop分支显示落后1个提交的原因
问题原因分析
1. PR合并方式导致提交历史差异
Azure DevOps默认PR合并采用创建合并提交模式,而非快进合并:
- 合并完成后,Master分支会新增一条专门记录合并操作的提交
- Develop分支则停留在合并前的最后一个提交状态,不会自动同步这条合并提交
- Azure DevOps的分支状态对比基于提交计数,因此会显示Develop落后Master 1个提交(即这条合并提交)
- 但代码内容上,Develop的所有变更都已同步至Master,所以本地执行
git diff master develop会显示无差异,git log --oneline也能看到Master包含了Develop的所有提交记录,仅多一条合并节点
2. Azure DevOps UI缓存延迟
Azure DevOps的分支状态显示存在缓存机制,偶尔会出现状态更新不及时的情况。刷新页面或手动触发远程仓库的Fetch操作(在Repos的Branches页面找到Develop分支,右键选择Fetch),即可同步最新状态。
3. Develop分支未被自动更新
PR完成合并仅会将变更同步到目标分支(Master),源分支(Develop)不会自动更新或重新基于Master。若要让Develop与Master的提交历史保持一致,可在本地执行以下命令:
git checkout develop git merge master git push origin develop
操作完成后,Azure DevOps的分支状态就会显示两者同步。
内容的提问来源于stack exchange,提问作者Domenico Monaco
相关产品推荐
相关产品推荐

