zovo.imzovo.im
首页›教程›正文

同时开三个 Claude Code,改的却是同一份代码?用 Worktrunk 给每个 AI 单独一间屋

zovo约 3 分钟读完
让几个 Claude Code 或 Codex 同时干活,最怕它们改到同一份文件,互相覆盖。Git 自带的“工作树”能解决,但命令又长又绕。Worktrunk 把它压成几条短命令,GitHub 上已有约 1.2 万星、465 个 fork,README 自称是目前最受欢迎的工作树管理工具。

先解释“工作树”:平时一个项目只有一个文件夹,你切分支,文件夹里的内容就跟着变。工作树(worktree)是 Git 自带的功能,让同一个项目同时摊开在几个文件夹里,每个文件夹停在不同分支上,互不干扰。给每个 AI 分一个文件夹,它们就不会改到同一份文件。

01原生命令麻烦在哪

按 README 的说法,哪怕只是新建一个,也要写 git worktree add -b feat ../repo.feat,再 cd 进去,分支名要敲三遍。收拾的时候还得退回主目录,先删工作树再删分支。同时开五六个,这点麻烦就会被放大。

02装好之后只记三条

安装(官方给的方式):

bash
# 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 的例子是这样:

bash
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 文档为准。

资料来源(2026-11-08 核对)
标签:
本文由 zovo 编辑撰写,转载请注明出处。

相关文章