Skip to Content
Git 工作树Git 工作树

Git Worktree 概述

Git Worktree 是 MoAI-ADK 中用于并行开发的核心功能。它提供完全隔离,使每个 SPEC 都能在独立环境中开发。

为什么需要 Worktree?

问题: 共享 LLM 设置

在传统的 MoAI-ADK 中,当您使用 moai glmmoai cc 更改 LLM 时,相同的 LLM 会应用到所有打开的会话。这会导致以下问题:

  • SPEC 间干扰: 开发不同 SPEC 时 LLM 设置会相互影响
  • 无法并行开发: 无法同时开发多个 SPEC
  • 成本效率低下: 必须在所有会话中使用昂贵的 Opus

解决方案: 完全隔离

使用 Git Worktree,每个 SPEC 保持完全独立的 Git 状态和 LLM 设置:

核心工作流程

三步开发流程

使用 Git Worktree 的 MoAI-ADK 开发由 3 个步骤组成:

分步详细说明

步骤 1: Plan (终端 1)

使用 Claude 4.5 Opus 生成 SPEC 文档:

> /moai plan "添加认证系统" --worktree

发生什么:

  • 自动创建 EARS 格式的 SPEC 文档
  • 自动为该 SPEC 创建 Worktree
  • 自动创建并切换 feature 分支

结果:

  • .moai/specs/SPEC-AUTH-001/spec.md
  • 新的 Worktree 目录
  • feature/SPEC-AUTH-001 分支

步骤 2: Implement (终端 2, 3, 4…)

使用 GLM 5 或其他经济高效的模型进行实现:

# 进入 Worktree (新终端) $ moai worktree go SPEC-AUTH-001 # 更改 LLM $ moai glm # 开始开发 $ claude > /moai run SPEC-AUTH-001 > /moai sync SPEC-AUTH-001

优势:

  • 完全隔离的工作环境
  • GLM 成本效率 (比 Opus 节省 70%)
  • 无冲突的无限并行开发

步骤 3: Merge & Cleanup

moai worktree done SPEC-AUTH-001 # main → 合并 → 清理 moai worktree done SPEC-AUTH-001 --push # 以上操作 + 推送到远程

Worktree 命令参考

命令描述示例
moai worktree new SPEC-ID创建新 Worktreemoai worktree new SPEC-AUTH-001
moai worktree go SPEC-ID进入 Worktree (打开新 shell)moai worktree go SPEC-AUTH-001
moai worktree list列出 Worktreemoai worktree list
moai worktree done SPEC-ID合并并清理moai worktree done SPEC-AUTH-001
moai worktree remove SPEC-ID删除 Worktreemoai worktree remove SPEC-AUTH-001
moai worktree status检查 Worktree 状态moai worktree status
moai worktree clean清理已合并的 Worktreemoai worktree clean --merged-only
moai worktree config检查 Worktree 设置moai worktree config root

Worktree 的核心优势

1. 完全隔离

每个 SPEC 保持独立的 Git 状态:

优势:

  • 可以在每个 Worktree 中独立提交
  • 无分支冲突的工作
  • 只有完成的 SPEC 才会合并到 main

2. LLM 独立性

每个 Worktree 保持独立的 LLM 设置:

3. 无限并行开发

可以同时开发多个 SPEC:

# 终端 1: Plan SPEC-AUTH-001 > /moai plan "认证系统" --worktree # 终端 2: Implement SPEC-AUTH-002 (GLM) $ moai worktree go SPEC-AUTH-002 $ moai glm > /moai run SPEC-AUTH-002 # 终端 3: Implement SPEC-AUTH-003 (GLM) $ moai worktree go SPEC-AUTH-003 $ moai glm > /moai run SPEC-AUTH-003 # 终端 4: Document SPEC-AUTH-004 $ moai worktree go SPEC-AUTH-004 > /moai sync SPEC-AUTH-004

4. 安全合并

只有完成的 SPEC 才会合并到 main 分支:

并行开发可视化

在多个终端中同时工作:

下一步

  • 完整指南 - Git Worktree 的所有命令和详细用法
  • 实际示例 - 真实项目中的使用案例
  • FAQ - 常见问题和故障排除

相关文档

Last updated on