You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需修改索引与工作区,合并三个Git树的可行方案咨询

解决方案

使用git merge-tree --write-tree命令即可完全满足你的需求,这是Git当前推荐的替代旧版三方树合并用法的方式:

命令格式

git merge-tree --write-tree <base-tree-id> <tip1-tree-id> <tip2-tree-id>

核心特性说明

  • 不改动提交历史:命令仅在内存中执行合并计算,不会创建任何新提交或修改现有提交
  • 可指定三方树:明确接受基础树ID和两个尖端树ID作为参数
  • 零副作用:绝对不会修改当前工作区、索引的任何内容
  • 输出规则:合并成功时直接输出合并后的树对象ID;若存在冲突,命令以非零状态码退出,无任何树ID输出

实用示例

如果需要合并main分支的基础树、feature-A和feature-B两个分支的尖端树,可先获取对应树ID:

# 获取基础树ID(比如main分支最新提交的树)
BASE_TREE=$(git rev-parse main^{tree})
# 获取两个尖端树ID
TIP1_TREE=$(git rev-parse feature-A^{tree})
TIP2_TREE=$(git rev-parse feature-B^{tree})

# 执行合并
git merge-tree --write-tree $BASE_TREE $TIP1_TREE $TIP2_TREE

执行后,控制台仅在合并成功时显示合并后的树ID,冲突时无输出。


内容的提问来源于stack exchange,提问作者eftshift0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:50:25