为何出现‘Multiple merge bases detected’警告?操作流程已最简
解决Azure PR中“Multiple merge bases detected”警告的常见原因
这个警告本质是Git在对比你的分支和目标develop分支时,找到了不止一个共同的历史提交节点,哪怕你流程看似简单,也可能是以下原因导致:
远程develop分支被重写过:你拉取代码后,有人对远程develop执行了
git rebase、git reset --hard这类改写历史的操作,还强制推送到了远程。这会让你本地保存的develop历史和最新远程develop的历史出现分叉,你基于旧历史创建的分支,自然会和最新develop有多个合并基点。拉取操作没完全同步:你可能只执行了
git fetch而没切换到develop分支执行git pull,导致你创建新分支时用的是本地旧版的develop,而非最新的远程develop分支,两者历史出现分叉后就会触发这个警告。仓库历史有隐性交叉:如果仓库之前有过多次跨分支合并、cherry-pick操作,也可能让Git识别到多个潜在的合并基点,但这种情况在你描述的简单流程里概率很低。
验证方法
执行以下命令可以直观看到问题:
git fetch origin git merge-base --all origin/develop 你的分支名
命令会列出所有被检测到的合并基点,能直接确认历史是否分叉。
解决办法
- 切换到你的分支,执行
git rebase origin/develop,把你的提交重新应用到最新的develop分支上,之后执行git push -f(确保这个分支只有你在开发,避免覆盖他人提交) - 也可以直接在Azure PR界面选择「Rebase and merge」选项(如果仓库策略允许),让平台自动处理历史后完成合并
内容的提问来源于stack exchange,提问作者Mighty
相关产品推荐
相关产品推荐

