使用 Claude Code 同步开发多个 Feature 的最佳实践
整理于 2026-04-07 | 基于 Anthropic 官方文档、Claude Code 创始人工作流、社区实践等多方资料
核心理念
Claude Code 创始人 Boris Cherny 称并行执行是 "最大的生产力飞跃"(the single biggest productivity unlock),也是整个 Claude Code 工程团队一致认同的第一技巧。
三个层级的并行开发
Level 1:手动 Worktree 会话(最简单、最常用)
Git worktree 是并行开发的基础。每个 worktree 拥有独立的工作目录和分支,共享同一仓库历史。
bash
# 启动独立 worktree 会话
claude --worktree feature-auth # 或简写 claude -w feature-auth
claude -w bugfix-123
claude -w feature-dashboard
# 自动生成随机名称
claude -w
- Worktree 创建在
<repo>/.claude/worktrees/<name>/ - 自动从
origin/HEAD创建分支worktree-<name> - 退出时:无更改自动清理,有更改会提示保留或删除
实用建议:3-5 个并行 worktree 是大多数开发者的舒适上限。
Level 2:子代理 Worktree(单会话内并行)
在一个 Claude 会话中,子代理可以使用 worktree 隔离来并行工作:
- 在自定义子代理的 frontmatter 中添加
isolation: worktree - 或直接要求 Claude "use worktrees for your agents"
- 最多可并行 7 个子代理
- 支持前台(等待结果)和后台(异步执行)模式
Level 3:Agent Teams(最强大,实验性)
多个完整 Claude Code 实例协作为一个团队:
bash
# 需要先在 settings.json 中启用
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
特性:
- 共享任务列表 + 依赖追踪
- 代理间点对点消息通信
- 文件锁定防止冲突
- 队友需在 Plan Mode 下工作,由 Lead 审批后执行
- 支持 tmux/iTerm2 分屏显示
Boris Cherny 的个人工作流
Claude Code 创始人的日常开发方式:
- 终端中运行 5 个 Claude Code 实例(5 个独立 git checkout)
- 在 claude.ai/code 上再运行 5-10 个会话
- 总计 10-15 个并行会话
- 始终先用 Plan Mode —— 反复迭代计划直到满意,再切换到 auto-accept 模式一次性执行
- 使用 Opus + thinking —— "因为操控更少、工具使用更好,几乎总是比小模型更快"
- 维护 CLAUDE.md 文件:每次 Claude 做错什么就记录下来,下次就不会重犯
关键最佳实践
1. 任务拆分原则
- 文件边界是黄金法则:并行只在代理触碰不同文件时才能顺利工作
- 每个队友分配 5-6 个任务为宜
- 任务应是自包含的单元,产出明确的交付物(一个函数、一个测试文件、一次 review)
- 避免过度并行化(10 个代理做一个简单功能 = 浪费 token + 协调开销)
2. CLAUDE.md 范围管理
- 在每个 worktree 根目录放置特定的 CLAUDE.md,给每个会话任务专属的指令
- 仓库根目录的 CLAUDE.md 放通用约定,worktree 级别的放具体任务上下文
- 精确的 scope 可以防止代理之间的工作重叠
3. 环境配置
gitignore
# .gitignore 中添加
.claude/worktrees/
bash
# .worktreeinclude 文件 —— 自动复制 gitignored 文件到新 worktree
.env
.env.local
4. 资源隔离
- 多个 worktree 可能会产生资源冲突(测试打同一个数据库/端口)
- 为每个 worktree 使用不同端口或数据库名
- 优先利用 CI 做预览环境,而非本地解决所有资源问题
- 记得在每个 worktree 中安装依赖(
npm install等)
5. 合并策略
- 频繁从 main 合并以保持分支更新
- 定期在每个 worktree 中执行
git fetch && git merge - 利用测试套件作为主要的"沟通机制"(Anthropic 内部经验)
6. 会话管理
- 用
/rename给会话起描述性名称,方便后续/resume - 设置
Notificationhooks 以便会话需要注意时收到桌面通知 - 使用 Plan Mode(
Shift+Tab两次)启动每个任务
方案选择指南
| 方案 | 最适合场景 | Token 消耗 |
|---|---|---|
手动 worktree (-w) | 独立的 feature、bug fix 并行开发 | 最低 |
子代理 + isolation: worktree | 单次对话中可并行的子任务 | 中等 |
| Agent Teams | 需要讨论和跨代理协调的复杂工作 | 最高 |
| 单会话 | 顺序任务、同文件编辑、强依赖工作 | 基准 |
真实案例
Anthropic C 编译器项目
- 在 Docker 容器中运行 16 个并行 Claude 实例
- 两周内完成近 2000 个 Claude Code 会话,消耗 20 亿 input tokens
- 使用基于文件的 git 锁进行任务协调
- 代理分工:核心实现、去重、性能优化、代码质量、文档
- 核心教训:测试套件成为自治代理之间的主要沟通机制
incident.io
- 自定义
wbash 函数简化 worktree 管理 - Plan Mode + 并行 worktree 结合,实现自信的自主执行
- 用语音输入做复杂功能定义,然后让 Claude 并行实现
- 10 分钟内实现 90% 可用的 UI 组件
替代方案与第三方工具
GitButler(无需 Worktree)
通过 Claude Code 生命周期 hooks,在同一个工作目录中运行多个会话:
- Hooks 通知 GitButler 文件变更和会话 ID
- 每个会话的工作自动路由到不同分支
- 无需每个 worktree 重新安装依赖
Parallel Code
免费开源桌面应用,自动为每个 AI 编码代理创建 git branch 和 worktree,支持手机监控进度。
ccmanager
多代理会话管理器,支持 Claude Code、Gemini CLI、Codex CLI、Cursor Agent 等。
快速上手清单
- 在
.gitignore中添加.claude/worktrees/ - 创建
.worktreeinclude列出需要复制的 env 文件 - 在仓库根目录建立完善的
CLAUDE.md - 启动会话:
claude -w feature-a、claude -w feature-b、claude -w bugfix-c - 每个会话先用 Plan Mode 迭代计划,满意后切换 auto-accept
- 用
/rename命名会话,方便/resume - 设置通知 hooks 掌握各会话状态
- 退出时清理已完成的 worktree
已知限制
- 并行实例过多可能出现 segfault(#20801)
- Worktree 会分裂对话历史、auto-memory 和项目设置(#34437)
- Agent Teams 不支持
/resume恢复队友 - 队友可能遗忘标记任务完成,阻塞依赖任务
- 不支持嵌套团队,每个会话仅限一个团队
参考资料
- Common workflows - Claude Code Docs
- Orchestrate teams of Claude Code sessions
- Create custom subagents
- How Boris Uses Claude Code
- Building a C compiler with parallel Claudes - Anthropic Engineering
- Shipping faster with Claude Code - incident.io
- Managing Multiple Sessions Without Worktrees - GitButler
- Claude Code Sub-Agents Best Practices - claudefa.st
- CLAUDE.md Productivity Stack - Botmonster