同时开三个 Claude Code,改的却是同一份代码?用 Worktrunk 给每个 AI 单独一间屋
先解释“工作树”:平时一个项目只有一个文件夹,你切分支,文件夹里的内容就跟着变。工作树(worktree)是 Git 自带的功能,让同一个项目同时摊开在几个文件夹里,每个文件夹停在不同分支上,互不干扰。给每个 AI 分一个文件夹,它们就不会改到同一份文件。
01原生命令麻烦在哪
按 README 的说法,哪怕只是新建一个,也要写 git worktree add -b feat ../repo.feat,再 cd 进去,分支名要敲三遍。收拾的时候还得退回主目录,先删工作树再删分支。同时开五六个,这点麻烦就会被放大。
02装好之后只记三条
安装(官方给的方式):
# macOS / Linux brew install worktrunk && wt config shell install # 或者用 Rust 的包管理器 cargo install worktrunk && wt config shell install # Windows winget install max-sixty.worktrunk git-wt config shell install
最后那句 config shell install 是装“终端集成”,不装的话,切换工作树时没法自动跳到对应文件夹。Windows 上因为 wt 和系统自带的 Windows Terminal 命令重名,官方让你改用 git-wt。
日常就是三个动作,括号里是对应的原生写法:
- wt switch -c feat:新建分支和工作树并跳过去(原生要三条命令)
- wt list:列出所有工作树,还显示有没有未提交改动、领先主分支几个提交、有没有没推送的提交
- wt remove:用完清理,工作树和分支一起删
03一次放三个 AI 去干活
新建时加 -x 可以顺手启动一个程序,两个短横线后面的文字会原样交给它。README 的例子是这样:
wt switch -x claude -c feature-a -- 'Add user authentication' wt switch -x claude -c feature-b -- 'Fix the pagination bug' wt switch -x claude -c feature-c -- 'Write tests for the API'
三条命令各开一个终端窗口运行,就是三个 Claude Code,分别在自己的分支、自己的文件夹里做各自的任务。想让它们开工前自动装依赖、起开发服务器,可以配“钩子”(hook,指在新建、合并等节点自动跑的命令)。
04干完怎么收尾
README 给了两种路线。走 GitHub 合并请求的话:wt step commit 提交改动,用 gh pr create 开请求,合并之后 wt remove 清理。想在本地直接合并,就用 wt merge main,它会把提交压成一个、整理到主分支之后,再把工作树和分支一起删掉。提交说明也可以让大模型根据改动自动生成,需要先按官方文档配置。
05几个小门槛
每个工作树都是一整份文件,依赖目录(比如 node_modules)要重装很费时间。官方有个功能,在 APFS、btrfs、XFS 这几种文件系统上,能让多个工作树共享构建缓存,不用重复编译或复制。另外项目是 MIT 或 Apache-2.0 双许可,免费可用。以上内容据官方 README 整理,具体命令和选项以 worktrunk.dev 文档为准。


DeepSeek
Hy-Memory
Timestral