用途:在单个仓库中把工作分发给多个并行 Claude Code 子代理或 NTM 群体时,避免两个工作者同时写同一文件导致编辑丢失或合并混乱。每个并发工作者获得独立的 git worktree(独立工作目录与分支),消除共享可变表面。
主要能力:
- 会话级:claude --worktree(-w)让整个会话在全新隔离 worktree 中启动。
- 代理级:在 .claude/agents/*.md 前置元数据中写 isolation: worktree,每次生成该队友自动获得自己的 worktree。
- 会话内:EnterWorktree / ExitWorktree 工具在会话中途创建/离开 worktree(创建于 .claude/worktrees/ 下)。
- 调优项:worktree.sparsePaths 限制大单体仓库的检出范围;WorktreeCreate / WorktreeRemove 钩子提供与版本控制无关的隔离及审计/清理。
使用方式:先确认文件所有权互不重叠,再按生成方式选择隔离杠杆(声明式代理 > claude --worktree > EnterWorktree > 钩子或手动 git worktree add)。配置后各工作者在自己 worktree 内提交,按确定顺序合并分支,最后用 ExitWorktree { action: "remove" } 或 git worktree remove <path> && git branch -d <branch> 清理,并用 git worktree list 与 git branch 验证无孤儿。
限制:始终一个文件一个写者,worktree 只防意外碰撞,不允许多人合法共编同一文件;EnterWorktree 仅在用户或项目指令明确要求时触发,且不能嵌套创建,只能通过 path 进入已存在 worktree;worktree.baseRef 决定分支基点(fresh 默认用 origin/<default-branch>,head 用当前本地 HEAD);ExitWorktree remove 在有未提交文件或未合并提交时会拒绝,除非 discard_changes: true;工作者禁用 claude -p;非 Claude 运行时需回退到钩子或手动 git worktree add。其他收费、价格、平台或效果信息暂未提供。