它是什么
Worktrunk 是一个用 Rust 写的命令行工具,把 Git 里强大但繁琐的 worktree 机制,包装成和分支一样顺手的操作。传统上,一个仓库同时只有一个工作目录,想并行改两份代码,就得反复 stash、重新 clone,或者手敲一长串 git worktree add 参数。Worktrunk 用几个核心子命令抹平这些摩擦,让你能在同一个仓库下开出多个独立目录,各自对应不同分支,互不干扰。
它的定位很明确:为并行运行 AI 编程代理(如 Claude Code、Codex)而生。多个代理同时改代码时,每个代理待在自己的 worktree 里,就不会互相抢占工作区、也不容易产生难以回滚的冲突。项目已积累一万一千多颗星,是当前最受欢迎的 worktree 管理工具之一。
核心功能
- 几条命令搞定 worktree:创建、切换、删除 worktree 的操作方式,跟
git switch、git branch一样容易理解,不用再背长参数。 - 面向并行 AI 代理:同时开多个工作目录,跑多个代理或任务,各自独立分支,避免同一份工作区被抢占。
- 自动化 hooks:在 worktree 创建或删除前后执行自定义脚本,自动装依赖、注入环境变量、跑初始化,省掉重复手工步骤。
- 写时复制构建缓存:新建 worktree 时可复用已有构建产物,不必每个目录都从零编译,节省磁盘与等待时间。
- 多分支状态总览:一次看清所有并行改动的位置与状态,方便在多个任务之间来回切换。
- Rust 单二进制:安装即用,启动快,无运行时依赖。
适用场景
- 一边让 AI 代理跑长任务,一边自己在另一个分支继续手写代码;
- 同时评审、测试多个 PR,每个 PR 分配一个目录;
- 需要紧急修线上问题,又不想打断当前未提交的工作;
- 对同一功能做多套实现方案对比,多个版本并存观察。
上手建议
先用 cargo 或官方安装脚本装好二进制,在已存在的仓库里跑一次 worktree 创建命令,感受它和手动敲 git worktree 的差别。建议先拿一个不太关键的仓库试水,hooks 配置留到第二步再接:尤其是依赖安装与缓存复用,等确认目录布局符合自己的习惯后再开启。团队使用时,把 worktree 命名规范写进 README,避免多人、多代理并行时目录混乱。若是为 AI 代理准备,除了物理目录分开,还要给每个代理配独立的端口、数据库或缓存路径,否则运行时资源照样会打架。