首页/开发/Git 与协作速查/git merge-tree 预演合并与冲突
合并变基与冲突71 条

git merge-tree 预演合并与冲突

不改变工作区即可试算两个分支的合并结果:可只输出冲突信息,也可在对象库中写出合并树,用于 CI 或脚本检查「能否干净合并」。

Git 与协作速查开发更新于 2026-10-12
用途无副作用地预演合并
语法git merge-tree <分支1> <分支2>
新版模式git merge-tree --write-tree <分支1> <分支2>(Git 2.38+)

常用示例

常用示例
git merge-tree main feature/login
# 只关心是否有冲突
git merge-tree --write-tree main feature/login >/dev/null; echo $?
不需要检出或暂存即可判断 PR 是否会冲突:新版用退出码表达结果(0 干净 / 1 冲突);旧版 --trivial-merge 输出半 diff 文本流,格式难解析,优先用新版。

易错点

  • 旧版与新版输出格式不同,脚本需按所用 Git 版本适配,别直接复用他人正则
  • 预演结果与索引和工作区无关,但受 fetch 到本地的引用影响,先确认分支已是最新

数据来源与参考

  • Git 官方文档:git-merge-tree
  • Git 2.38 Release Notes(--write-tree)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌