理解 Worktree 的 API 只需 5 分钟,真正的价值在于设计一套让多个 Claude 会话协同工作的流程。本文分享 4 种并行工作流模式,以及在实践中摸出来的"什么时候并行划算,什么时候反而碍事"。
为什么 Worktree 能让多个 Claude 会话并行?
没有 Worktree 的困境:
# 终端 1:Claude 在开发 feature-payment
claude
> 实现支付模块
# 终端 2:你想同时让 Claude 修复 Bug
claude
> 修复 auth.ts 的 token 过期问题
# 问题:两个会话都在修改 auth.ts!
# 一个会话的修改会覆盖另一个的修改
# 冲突、未保存修改、互相踩脚有 Worktree 的方案:
# 终端 1:在独立分支上开发新功能
claude --worktree feature-payment
> 实现支付模块 # 修改在 .claude/worktrees/feature-payment/ 里
# 终端 2:在另一个独立分支上修复 Bug
claude --worktree bugfix-auth-token
> 修复 auth.ts 的 token 过期问题 # 修改在 .claude/worktrees/bugfix-auth-token/ 里
# 完全独立,随便并行4 种并行工作流模式
模式 1:功能开发 + Bug 修复同时进行(最常用)
适用场景:手头有多个独立任务,不想等一个完成才开始下一个。
# 窗口布局:tmux / Terminal tabs
# Tab 1:新功能开发(预计 2 小时)
claude --worktree feature-search
> 实现全文搜索功能:
> 1. 集成 Meilisearch
> 2. 添加搜索 API 端点 /api/search
> 3. 前端搜索框组件
> 4. 写测试
# Tab 2:同时修复紧急 Bug(预计 20 分钟)
claude --worktree bugfix-login-race
> 修复登录时的竞争条件:
> 错误信息:Cannot read properties of undefined (reading 'token')
> 发生在 src/auth/session.ts:142
# Tab 3:同时写文档(预计 45 分钟)
claude --worktree docs-api-reference
> 根据 src/api/ 目录的现有端点,生成完整的 API 参考文档
> 格式:OpenAPI 3.0,输出到 docs/api/openapi.yaml结果:
- Bug 修复 20 分钟完成,创建 PR,可以立刻 Review 和合并
- 文档 45 分钟完成,独立 PR
- 新功能 2 小时完成,独立 PR
- 总耗时:还是 2 小时(最长的任务决定),不是 2h45m
合并策略:
- Bug 修复 PR 最快合并(最紧急)
- 文档 PR 其次
- 新功能 PR 最后(可以在其他 PR 合并后 rebase)
模式 2:并行代码审查(审查 + 继续工作)
适用场景:等待 PR 被 Review 时,同时让 Claude 也做自己的审查。
# Tab 1:让 Claude 审查待合并的 PR
claude --worktree "#234"
> /review 对这个 PR 进行深度审查:
> 1. 安全性(特别关注 SQL 注入和 XSS)
> 2. 性能(N+1 查询、缺失索引)
> 3. 测试覆盖率
> 输出格式:按严重性分类(Critical/Warning/Suggestion)
# Tab 2:继续开发下一个功能,不用等审查结果
claude --worktree feature-notifications
> 开始实现通知系统...关键点:审查 Worktree 是从 PR 的分支创建的(--worktree "#234"),审查完毕可以直接在该 Worktree 里修改代码,创建新的 commit 推送到 PR 分支。
模式 3:大规模重构 + 主线开发(隔离破坏性变更)
适用场景:有一个破坏性的大重构需要做,但又不能停止日常开发。
# Tab 1:主线开发(正常节奏)
claude
> 日常的小功能开发、Bug 修复...
# Tab 2:长期大重构(可能需要几天)
claude --worktree refactor-auth-system
> 重构认证系统从 JWT 到 Session-based:
> 这是一个大工程,分阶段做:
> 阶段 1(今天):分析现有 JWT 实现,制定迁移计划
> 阶段 2(明天):实现新的 Session 模块(不删除旧的)
> 阶段 3:逐步切换各模块
> 每个阶段独立 commit这个模式的价值:重构工作在独立的 Worktree 里进行,即使重构"破坏"了一些东西,主线开发完全不受影响。可以随时切换回主会话处理紧急事项。
模式 4:Subagent 隔离模式(自动并行)
适用场景:让 Claude 自己协调多个并行子任务。
# 主会话:给 Claude 一个需要并行的复杂任务
claude
> 对 src/ 目录进行以下并行分析(请为每个任务使用独立 worktree 的 subagent):
>
> 1. 安全审计:检查所有 SQL 查询的注入风险
> 2. 性能分析:找出所有可能的 N+1 查询
> 3. 测试覆盖率:找出覆盖率低于 60% 的模块
> 4. 依赖分析:找出可以替换的过时依赖
>
> 每个分析独立进行,最后汇总报告Claude 会创建 4 个并行 Subagent,每个在独立 Worktree 里运行(如果配置了 isolation: worktree),完成后汇总报告。
相比顺序执行的优势:4 个任务如果各需要 10 分钟,顺序执行 40 分钟,并行只需 10 分钟(加上协调开销)。
什么时候不应该用并行 Worktree?
任务有依赖时
# ❌ 错误做法:有依赖关系的任务并行
claude --worktree feature-user-api
> 实现用户 API 端点
claude --worktree feature-user-frontend
> 实现用户管理前端(依赖上面的 API!)
# 前端需要等 API 的接口定义确定才能做,并行反而会频繁 rebase正确做法:先完成 API,定义好接口,再开始前端。或者先设计好接口文档,再并行。
任务需要共享上下文时
# ❌ 错误做法:需要共享学习的任务
claude --worktree analyze-codebase
> 深入分析这个代码库的架构
claude --worktree refactor-based-on-analysis
> 根据架构分析结果进行重构
# 第二个 Worktree 看不到第一个的分析结果!正确做法:先做分析,把结论写入文档或直接在对话中继续,再开始重构。
单一简单任务时
# ❌ 过度工程化
claude --worktree fix-typo
> 修复 README.md 第 3 行的拼写错误
# 完全没有必要用 Worktree,直接 claude 就够了实用技巧
技巧 1:命名要有意义
# ❌ 无意义的名称
claude --worktree work1
claude --worktree temp
# ✅ 描述性名称
claude --worktree feature-stripe-integration
claude --worktree bugfix-issue-234
claude --worktree review-pr-567技巧 2:.worktreeinclude 避免环境问题
# .worktreeinclude(在项目根目录)
.env
.env.local
.env.development
config/local.json
确保每个 Worktree 都有必要的环境变量,否则在 Worktree 里运行测试会因为缺少 DATABASE_URL 等变量失败。
技巧 3:监控多个 Worktree 的进度
# 查看所有活跃 Worktree
git worktree list
# 检查每个 Worktree 的状态
for wt in .claude/worktrees/*/; do
echo "=== $wt ==="
git -C "$wt" status --short
git -C "$wt" log --oneline -3
done技巧 4:非交互模式 + Worktree
# 在 Worktree 里运行非交互任务(完成后自动退出)
claude --worktree test-run -p "运行完整测试套件,输出摘要"
# 注意:-p 模式的 Worktree 不自动清理,完成后手动 git worktree remove技巧 5:PR Worktree 直接推送
# 从 PR 创建 Worktree
claude --worktree "#234"
# 在 Worktree 里修复 Review 意见
> 按照 Review 评论修复以下问题:...
# Claude 直接把修改推送到 PR 分支
# 需要启用 "Allow unrestricted branch pushes"合并多个 Worktree 的结果
# 查看所有 Worktree 的变更
git worktree list
# 切换到 Worktree 确认效果
cd .claude/worktrees/feature-payment
git log --oneline -5
npm test # 确认测试通过
# 创建 PR(在 Worktree 目录里)
gh pr create --title "feat: 实现支付模块" --body "..."
# 清理 Worktree(有 commit 时会询问)
exit # 退出 Claude,按提示操作来源:Claude Code 官方文档 - Worktrees | 整理:ClaudeEagle