「你刚启动Claude做重构,你知道这要花上一阵子,也知道接下来会发生什么。」——Gregory Sanders这篇技术博客的开头,精准戳中每个用过AI编程工具的人。

要么干等,要么打断它。两个选项,同一个病根:你和AI共享一个工作目录,而目录一次只能承载一条思路。

打开网易新闻 查看精彩图片

这不是提示词能解决的问题

很多人第一反应是优化提示词、缩小任务范围、加强代码审查。但Sanders直接否定了这条路——这是物理约束,不是沟通问题。

两个实体同时编辑磁盘上的同一批文件,必然冲突。分支切换也没用:你切到main分支查个细节,Git要么因为脏树(dirty tree)拒绝切换,要么把AI正在改的代码强行带到错误分支。

想要的隔离,瞬间消失。

工作树:同一仓库,多个办公桌

Git worktrees(工作树)的解决方案很朴素:给AI单独开一张"办公桌"。

核心机制一句话:同一套Git数据库,多个独立工作目录,各自锁定不同分支。执行一条命令:

git worktree add .worktrees/myrepo-auth -b feature/auth

Git会在当前仓库内新建.worktrees/myrepo-auth文件夹,检出feature/auth分支,原目录完全不受影响。你的终端、编辑器、本地服务继续跑在原有分支上,仿佛什么都没发生。

关键细节:记得把.worktrees/写进.gitignore,否则新文件夹会被仓库自己追踪——逻辑上很荒诞,实践中很常见。

Claude Code更激进,原生支持--worktree(或-w)参数:

claude --worktree feature-auth

一键创建工作树并启动会话,AI直接在隔离环境里开工。

没人告诉你的 setup tax

但Sanders的真正发现不在技术机制,而在隐藏成本。

每个工作树都是完整文件系统视图,意味着依赖安装、环境变量、配置文件全要重新来一遍。Node项目的node_modules、Python的虚拟环境、IDE索引、构建缓存——这些在现代项目里动辄几GB的"基础设施",每开一张新桌子就要复制或重建。

他称之为"setup tax"( setup 税)。

对于人类开发者,这个税偶尔交一次还能忍。但对于AI Agent——它们可能需要频繁创建、销毁、切换工作树——税率高到不可接受。

Sanders的应对是自建工具包:符号链接共享依赖、环境模板快速克隆、脚本自动化配置。核心思路不是消灭成本,而是摊薄到可忽略。

为什么这件事值得现在关注

工作树不是新功能,Git 2.5(2015年)就已引入。但AI编程工具的爆发让它从"小众技巧"变成"基础设施问题"。

单人+多Agent的协作模式正在成型。一个Agent写测试,一个重构旧代码,人类审查合并——这种并行工作流需要真正的文件系统隔离,而非虚假的"分支切换"。

Sanders的判断很直接:Agent需要自己的desk(办公桌),而工作树是目前最轻量的实现方式。代价是显性的,但可控;收益是结构性的——它把AI从"串行阻塞"解放为"并行协作"。

下一步行动很具体:如果你用Claude Code,试试-w参数;如果用其他工具,手动创建工作树,测量你的setup tax,决定哪些成本值得自动化。这个测量本身,就是理解AI协作瓶颈的起点。