Claude Code官方内置Worktree支持:一个参数替代5步手动操作
Git Worktree这东西,社区早就在用了。
之前想让多个Claude Code Agent并行干活,老手们的做法是:
手动创建worktree目录,手动切分支,手动在每个目录启动Claude Code。
能跑,但每次都要折腾5步,而且subagent根本不认worktree。
2月21号,Anthropic工程师Boris Cherny宣布了一个更新。
Claude Code正式把Git Worktree内置到CLI里了。
加个 --worktree 参数,自动创建隔离目录,subagent也原生支持了。
这不是什么新功能发布,而是把社区半年来的手动操作变成了官方一键方案。
老金我研究了官方文档和社区讨论,今天把这个更新拆解清楚。
社区早就在用,为什么还需要官方支持?
先说背景,免得有人觉得这是炒冷饭。
Git Worktree是git自带的功能,允许从同一个仓库创建多个工作目录。
每个目录checkout不同的分支,共享同一个 .git 目录。
这个功能本身不新,git 2.5就有了。
社区里的Claude Code老手早就发现了这个玩法:
开几个worktree目录,每个目录跑一个Claude Code实例,互不干扰。
incident.io团队甚至分享过他们的经验,同时跑4-5个Agent并行工作。
但手动搞有三个硬伤:
1、每次都要手动创建和清理
git worktree add ../feature-a feature-a
git worktree add ../feature-b feature-b
# 用完还得手动清理
git worktree remove ../feature-a
每开一个并行任务就要敲一遍,烦。
2、Claude Code不感知worktree状态
在worktree目录里启动Claude Code,它不知道自己在worktree里。
有些功能会出问题,比如git操作可能指向错误的分支。
你得自己小心,别让Agent把代码提交到错误的地方。
3、subagent完全不支持
这是最大的痛点。
用Agent Teams模式时,主Agent派出的subagent都在同一个目录工作。
subagent之间互相踩文件,你手动创建的worktree对subagent没用。
这三个问题,社区讨论了半年,GitHub上相关Issue一堆。
现在官方终于出手了。
官方内置了什么(三个核心能力)
这次更新不是简单地"支持worktree",而是从CLI、subagent、Desktop三个层面全面内置。
1、CLI的 --worktree 参数
最直接的改变。
启动时加一个参数,Claude Code自动帮你创建隔离的worktree目录。
claude --worktree
之前你要手动敲3行命令才能搞定的事,现在一个参数解决。
Claude Code会自动创建worktree、切换到新目录、在里面启动会话。
用完之后的清理也不用你操心。
你可以同时开5个终端,每个都加 --worktree。
5个Agent各自在独立目录工作,零冲突。
2、Subagent原生Worktree支持
这个才是真正的重头戏,也是社区呼声最高的。
之前的问题是:你手动创建了worktree,但subagent不认。
主Agent派出subagent执行任务,subagent还是在主目录里干活。
多个subagent互相踩文件,各种奇怪的bug。
现在subagent原生支持worktree了。
主Agent派出subagent时,subagent会自动在独立的worktree中工作。
完成后,改动以分支的形式提交回来。
这意味着你可以让一个主Agent同时派出多个subagent:
1、subagent A负责重构API模块
2、subagent B负责写测试用例
3、subagent C负责更新文档
三个subagent并行工作,互不干扰。
完成后各自提交分支,你只需要review和merge。
3、Desktop应用的Worktree模式
如果你用的是Claude Code Desktop版本,操作更简单。
打开Code标签页,勾选 Worktree Mode 就行。
开启后,每次新建会话都会自动创建独立的worktree。
不需要记命令行参数,点一下就完事。
实际怎么用(小白也能跟着做)
先说一个前提:用worktree跑并行任务,你大概率需要搭配 --dangerously-skip-permissions 这个参数。
为什么?
因为Claude Code默认每次操作都要你手动确认权限。
一个Agent还好,你开5个并行跑,5个窗口同时弹确认框,你确认得过来吗?
实战中大家的标准姿势就一行:
claude --worktree --dangerously-skip-permissions
两个参数拆开解释:
-
--worktree:自动创建独立工作目录,文件隔离
-
--dangerously-skip-permissions:跳过权限确认,Agent全自动跑
启动后进入对话界面,直接输入你的任务就行。
场景1:多个终端并行开发
打开终端,cd到项目根目录,开3个终端窗口,每个都执行:
claude --worktree --dangerously-skip-permissions
然后分别输入不同的任务:
-
终端1:"实现用户登录功能,使用JWT认证"
-
终端2:"修复搜索结果分页不正确的问题"
-
终端3:"给utils目录下的工具函数写单元测试"
三个Agent各自在独立目录里工作,互不干扰。
完成后各自提交分支,你只需要review和merge。
场景2:批量代码迁移
这是社区反馈最多的场景。
比如你要把项目从CommonJS迁移到ESM,涉及几十个文件。
启动worktree会话后,告诉Agent:
"把src目录下所有CommonJS的require改成ESM的import,每个模块独立处理"
Claude会自动把任务拆分给多个subagent。
每个subagent在独立worktree中处理几个文件,完成后提交分支。
之前这种操作,subagent会互相踩文件,现在完全不会了。
场景3:清理worktree
虽然官方内置了自动管理,但养成手动检查的习惯没坏处:
# 查看所有worktree
git worktree list
# 清理已完成的worktree
git worktree prune
注意:--dangerously-skip-permissions 顾名思义,跳过了所有权限检查。
用在自己的开发项目上没问题,别在生产环境或者不信任的代码库上用。
手动挡 vs 自动挡(核心对比)
老金我做个对比,你就知道这次官方内置的价值在哪。
之前(社区手动方案):
1、手动 git worktree add 创建目录
2、手动 cd 到新目录启动Claude Code
3、subagent不支持worktree,只能在同一目录工作
4、Claude Code不感知worktree状态,部分功能异常
5、用完手动 git worktree remove 清理
现在(官方内置方案):
1、加个 --worktree 参数,自动创建+启动
2、subagent原生支持,自动在独立目录工作
3、Desktop版一键开启Worktree Mode
4、Claude Code完全感知worktree状态,功能正常
5、自动管理worktree生命周期
最大的变化是subagent那块。
之前Agent Teams最头疼的就是subagent文件冲突,社区手动方案根本解决不了。
现在官方从底层支持了,这个问题才算真正解决。
什么场景最适合用
不是所有任务都需要worktree,老金我帮你理清楚。
适合用的场景:
1、多个独立功能并行开发(登录+搜索+支付)
2、大规模代码迁移(CJS转ESM、升级框架版本)
3、同时修多个bug(每个bug一个worktree)
4、代码审查+开发并行(一个worktree review,一个写新功能)
不需要用的场景:
1、单个简单任务(改个bug、加个按钮)
2、需要频繁交互的任务(边写边调试)
3、文件依赖紧密的任务(改A必须同时改B)
判断标准很简单:如果两个任务改的文件没有交集,就适合用worktree。
如果改的是同一批文件,还是老老实实一个Agent搞定。
和Agent Teams的关系
之前老金我写过Claude Code的Agent Teams模式。
有人可能会问:这个worktree和Agent Teams有什么关系?
简单说:Worktree是基础设施,Agent Teams是上层应用。
Agent Teams负责任务拆解、分配、协调。
Worktree负责给每个Agent提供独立的工作空间。
之前Agent Teams的短板就是没有文件隔离,subagent互相踩文件。
现在有了官方内置的worktree支持,Agent Teams才算真正能并行工作了。
打个比方:
Agent Teams是公司的管理制度(谁干什么、怎么配合)。
Worktree是每个员工的独立工位(各干各的,不互相打扰)。
两个配合起来,才是完整的多Agent并行方案。
老金的建议
这个更新老金我觉得是Claude Code近期最务实的一个。
不是发布什么花里胡哨的新能力,而是把社区已经验证过的最佳实践变成了官方标配。
Git Worktree + 多Agent并行,这个组合社区玩了半年了,现在终于不用手动折腾了。
如果你已经在手动用worktree跑多Agent,升级到最新版直接用 --worktree 就行。
如果你还没试过多Agent并行,现在门槛降到了一个参数,可以试试。
最后提醒一点:worktree用完记得检查。
虽然官方内置了自动管理,但定期跑一下 git worktree list 看看状态没坏处。
磁盘空间不是无限的。