警告:检测到多个合并碱基。显示的提交列表可能不完整

Posted

技术标签:

【中文标题】警告:检测到多个合并碱基。显示的提交列表可能不完整【英文标题】:Warning: Multiple merge bases detected. The list of commits displayed might be incomplete 【发布时间】:2021-11-11 15:15:31 【问题描述】:

在 Azure Repos 中,我创建了一个从分支 A 到分支 B 的 PR。没有显示合并冲突。但我最终得到了警告信息

Warning: Multiple merge bases detected. The list of commits displayed might be incomplete.

【问题讨论】:

我们今天也是第一次看到这个。 我不能以任何方式与 Azure 交谈或代表 Azure,但查看时多个合并基础是正常的(或正常的:它们是正常的,但 很少见)分支:例如,它们是交叉合并的结果。 你能提供更多细节吗?比如你在A分公司做了什么? 我们突然在 ADO 上的长期存在的分支上也遇到了这个问题,而以前从未见过这个警告。我已经进行了一些测试,并没有看到任何不愉快的地方:提交历史得到正确维护,更改合并得很好。 @BowmanZhu-MSFT 这绝对是过去 24 小时内 ADO 中引入的问题 此 Microsoft 开发人员社区链接中的一些附加信息:vsf-prod.westus.cloudapp.azure.com/content/problem/1530780/… 【参考方案1】:

我今天收到了同样的消息。我刚刚从目标分支中提取了最新的更改并将它们合并到源分支中,问题就解决了。

【讨论】:

这样我每次都需要回去看看目标分支上是否有新的变化并合并。不过应该有更好的方法。 正确,特别是在测试时,值得引入最新的更改。我不同意你的看法,应该有更好的方法。在我看来,这很好用。 如果另一个 PR 被合并到目标分支中,消息会重新出现,您必须在每个 PR 等待中提取最后的更改。在我看来,这不是一个可行的方法。 这对我也有用。 但这意味着我的主分支得到了某种影子更新,由于分支策略到位,这是不可能的【参考方案2】:

只需将目标分支的最新更改带到源分支并完成合并,之后该消息将不会出现在拉取请求页面上。

在我看来,Azure DevOps 发出这样的警告是件好事,这样如果您在完成拉取请求之前忘记从目标分支获取最新信息,它可能会节省一些时间或结束时刻的匆忙和惊喜。

【讨论】:

是的 - 他们应该把它说得更清楚。从字面上添加“嘿,您是否忘记与最新的遥控器同步或..?”到消息。 但是当检测到一些合并冲突时,它也有合并冲突消息。所以这个关于多个碱基的警告是没有用的。 这不是我的解决方案。请参阅我对@Jorn.Beyers 回答的评论。【参考方案3】:

如果我是正确的,这个警告是没有用的,因为 DevOps 还有一个检测合并冲突的功能。无论是否存在任何冲突,我都会收到此警告

如果检测到合并冲突,那么我得到这个:

所以我想说处理合并的正确方法是通过自动构建管道,而不是让每个人都感到困惑的警告。

【讨论】:

警告是说提交列表可能不完整,这与合并冲突不同。看到来自 OP 的警告并不意味着存在合并冲突,我收到的警告没有任何冲突。它通常发生在纵横交错的合并中(例如,我针对最新版本创建了一个功能分支,然后我对旧版本进行了修补程序并将修复程序合并到我的最新版本的发布分支中)。在这些复杂的情况下,Azure DevOps 无法保证其被合并的提交列表是正确的 所以我想警告应该只在提交选项卡上可见?并且该警告的着色有问题。此外,我们只进行开发,多个功能分支以不同的顺序完成,实际上仍然一直看到这个警告。 在我们由 5 名同时拥有多个 PR 的开发人员组成的小型项目团队中,我基本上在每个 PR 上都会收到此警告。已经看到一个月了,我想确认这个警告对我没有用。【参考方案4】:

今天有多位队友发生了这种情况。之所以发生这种情况,是因为他们要先将 PR 合并到我们的主分支中,然后再将该主(远程)分支合并到他们的(本地)分支中。他们的本地分支落后了几个提交。

一旦他们合并、提交和推送,消息就消失了。

【讨论】:

【参考方案5】:

我发现当我将更新从另一个分支拉到我要合并的分支时收到消息(例如,从 master 更新 dev 分支,然后 PR 合并回 master)。

当我忘记在推送更新之前下拉更改时,我也发现了这一点。

【讨论】:

【参考方案6】:

根据消息,如果在涉及多个分支时将合并设置为“快进”,有时会发生这种情况。

如果没有其他冲突(检查冲突选项卡),那么您可能允许合并完成,方法是选择(从“...”菜单中)重新启动合并,然后选择非快进合并选项。

【讨论】:

以上是关于警告:检测到多个合并碱基。显示的提交列表可能不完整的主要内容,如果未能解决你的问题,请参考以下文章

make: 警告:检测到时钟错误。您的创建可能是不完整的。

在一个帐户上检测多个用户

git 提交

显示直接提交到分支的提交,忽略 Git 中的合并

Github 拉取请求显示太多更改/提交

将 Android Studio 升级到 3.2.1 后合并清单警告