三方合并

merge 会移动引用,还是创建 commit?

共同祖先决定历史只需前移,还是需要组合。

图的形状,决定结果的形状。

选择 fast-forward、分叉历史,或文本干净但行为检查失败的合并。Git 能组合文本,不能代替行为验证。

C1-C3 与 M 是图示标识。实验会检查真实 parent ID,并运行真实行为检查。

静态模型:main 是 topic 祖先时,fast-forward 只移动 main,不创建 merge commit。历史分叉时,merge commit 有两个 parent。文本合并干净仍可能无法通过 behavior_check.py。
预测:merge 没有文本冲突,结果行为就正确吗?

还不能确认。实验保留 semantic-result:Git 文本合并成功,但 behavior_check.py 退出码为 1。