主题
Worktree 并行开发
Claude Code 内置 Git Worktree 支持,一条命令开多个 Claude 并行处理不同分支,不用频繁切分支。
适用场景
- 同时开发 3-5 个功能分支
- 一边写新功能、一边修紧急 bug
- 实验性改动(不污染主分支)
- 团队推荐的"日常多任务"提效法
一句话原理
Git Worktree = 同一个 .git 数据库 + 多个工作目录。所有 commit/branch 共享,但每个 worktree 文件状态独立。
主仓库 myapp/ ← 你日常开发
├── .git/
├── src/
└── ...
../myapp-feature-auth/ ← worktree 1,独立目录
├── .git → 链接到主仓库
└── src/ ← 不同状态的文件
../myapp-bugfix-payment/ ← worktree 2
├── .git → 链接到主仓库
└── src/3 个目录 = 3 个 Claude 可同时跑。
快速使用(Claude Code 内置)
bash
# 在主项目内
cd ~/myapp
# 一条命令创建 worktree + 启动 Claude
claude --worktree feature-auth
# 自动生成随机名(不用想名字)
claude --worktreeClaude Code 会自动:
- 创建
../myapp-feature-auth/目录 - 在该目录新开
feature-auth分支 - 切到该目录启动 Claude
等于把以下 5 步合一:
bash
git worktree add ../myapp-feature-auth -b feature-auth
cd ../myapp-feature-auth
claude # 启动同时开多个 Claude
bash
# 终端 1
claude --worktree feature-auth
# 终端 2
claude --worktree bugfix-payment
# 终端 3
claude --worktree experimental-ui
# 终端 4(主分支,不开 worktree)
cd ~/myapp && claude四个 Claude 各自独立 context,互不干扰。
实战案例
案例 1:日常多线程
情境:你在写新功能 → 突然来紧急 bug
↓
不用切分支、不用停服、不用 stash
↓
开新终端:
cd ~/myapp
claude --worktree hotfix-prod-bug
↓
在新 worktree 里修 bug、跑测试、合 PR
↓
原来的功能开发 Claude 一点不受影响案例 2:并行尝试 3 个方案
bash
# 终端 1:保守方案
claude --worktree approach-conservative
# 终端 2:现代方案
claude --worktree approach-modern
# 终端 3:实验方案
claude --worktree approach-experimental三个 Claude 并行实现同一需求 → 你对比效果选最满意的合主分支。
案例 3:团队最佳实践
开发周一计划:
- worktree-1: 跑测试套件升级
- worktree-2: 重构 auth 模块
- worktree-3: 写新 API 端点
- worktree-4: 看 PR 反馈改 PR
你在 4 个终端切换,每个 Claude 独立推进。命令清单
bash
# Claude Code 内置
claude --worktree <name> # 创建并启动
claude --worktree # 随机命名
# Git 原生命令(手动管理)
git worktree list # 列出所有 worktree
git worktree add ../myapp-foo -b foo
git worktree remove ../myapp-foo # 删除
git worktree prune # 清理无效引用清理
用完一个 worktree 后记得删,否则越来越乱:
bash
# 方法 1:用 git 命令
git worktree remove ../myapp-feature-auth
# 方法 2:手动
rm -rf ../myapp-feature-auth
git worktree prune
# 方法 3:分支也一起删
git worktree remove ../myapp-feature-auth
git branch -d feature-auth.gitignore 配置
如果 worktree 创建在主仓库内部(不推荐),加 .gitignore:
.claude/worktrees/但更推荐放主仓库外(默认行为)—— 不会污染。
适合 vs 不适合
✅ 适合用 worktree
- 多个独立功能(auth / payment / ui 等不相关)
- 长时间任务(编译 / 训练 / 大重构)
- 实验性改动(怕搞坏主分支)
- 急 bug + 慢功能并行
❌ 不适合
- 顺序依赖任务(B 依赖 A 完成)
- 改同一个文件的多个变更(会冲突)
- 小修改(开销大于收益)
- 没明确边界的探索(Claude 容易瞎改)
给每个 Claude 清晰边界
启动 worktree Claude 后第一句话就划界:
你在 ../myapp-feature-auth/ worktree 里工作。
只改 src/auth/ 下的文件。
不要碰 src/payment/ 或 src/ui/。
其他 worktree 在并行做别的事,避免冲突。防止 Claude 想"顺手"改其他模块。
CLAUDE.md 跨 worktree 共享
所有 worktree 共享同一 .git,意味着也共享主仓库的 CLAUDE.md(如果有的话)。
每个 worktree 内可以额外加 .claude/worktree.md 写专属规则:
markdown
# 本 worktree(feature-auth)专属
只关注 auth 模块。本任务的 TODO:
- [ ] 实现 magic link 登录
- [ ] 加 rate limiting
- [ ] 测试覆盖 ≥ 80%性能影响
| 项 | 影响 |
|---|---|
| 磁盘 | 每个 worktree 完整副本(node_modules 等会复制) |
| 内存 | 每个 Claude 独立 context(每个 ~500MB-1GB Node 进程) |
| 网络 | 共享 git remote,pull/push 集中 |
node_modules 不会共享 —— 如果你想省磁盘,用 pnpm + 软链接策略。
跟 Subagent 的对比
| Worktree | Subagent | |
|---|---|---|
| 上下文 | 完全独立 | 独立但临时 |
| 文件系统 | 不同目录 | 同目录 |
| 并发数 | 你能开多少终端 | 最多 10 |
| 持久 | 用完手动删 | 任务完即销毁 |
| 适合 | 长期并行功能 | 短期委派任务 |
两者互补:用 worktree 隔离功能分支,每个 worktree 内还能开 subagent 做委派。
进阶:Boris 的 15 个 Claude 流派
社区有人同时跑 15 个 Claude(Boris 流),靠 worktree + tmux:
bash
# 用 tmux 一次开 15 个窗口
for i in {1..15}; do
tmux new-window -t mysession -n "claude-$i"
tmux send-keys -t "claude-$i" "claude --worktree task-$i" C-m
done但实际3-5 个并行已经是甜蜜点 —— 你脑子能跟上的上限。
