【问题标题】:Does the order of multiple Git Merges matter?多个 Git 合并的顺序是否重要?
【发布时间】:2025-11-22 13:30:01
【问题描述】:

假设我有三个或更多分支,一个“主”分支 M 加上“功能”分支 B1 和 B2。

是否合并:B1 到 M 中; B2进M M 总是产生与合并相同的结果: B2 到 M 中; B1进M

如果不是,如何确保两个不同版本的M在合并顺序不同后得到相等的结果?

【问题讨论】:

  • 除非存在合并冲突并且以不同的方式解决它们,否则没有理由期望这两种情况之间存在差异。另外,请注意,您可以一次性合并它们,而不是依次合并。
  • 为什么不在测试仓库上试试呢?
  • @RomainValeri 谢谢。假设存在冲突,并且它们的解决方式不同。之后怎么能均衡两个不同的 M 分支呢?将它们合并在一起?
  • @LucasSpiller 首先区分它们,然后您可能会看到一个或另一个分辨率有什么问题。在你的情况下,我会尝试与所有相关人员讨论以避免错误的假设。

标签: git merge git-merge


【解决方案1】:

一般的答案是:您不应该假设“合并 B1 然后 B2”产生与“合并 B2 然后 B1”完全相同的结果,“合并”操作的顺序可能很重要。

无论如何:你不应该假设成功的合并意味着代码是好的;你应该经常检查一些额外的步骤:检查代码,运行编译器/你的构建脚本,运行你的 linter,运行你的单元测试,QA ...


就合并而言:一些额外的元素可能会让您知道顺序无关紧要

B1 只修改backend/B2 只在frontend/ 中的文件——或者更一般地说,如果修改的文件完全不相交——那么是的,它们会通勤;

或者,如果在检查公共文件的修改方式时,您可以看到差异块作用于文件的不同部分(*),您也可以推断您可以按任何顺序合并。

但再说一遍:你最好合并(以任何顺序)然后测试结果,而不是试图依赖一些通勤属性。


(*) : 不完全正确,这需要更正式的定义

【讨论】:

    最近更新 更多