我如何在同一个仓库中使用 Git Worktrees 并行运行 5+ AI Agents
Source: Dev.to
问题
如果你在使用 Claude Code、Cursor 或 Windsurf 等 AI 编码代理,可能已经遇到这样的障碍:你想在同一个代码库上同时运行多个代理,但它们会相互覆盖对方的文件。
把仓库克隆多份可以工作,但会浪费磁盘空间并产生分叉的 git 历史。分支也帮不上忙,因为代理会修改工作目录。
公平地说,一些工具已经部分解决了这个问题——Claude Code Desktop 和 Codex 会自动创建 worktree。但它们各自的实现方式不同,缺少统一的界面来浏览或管理这些 worktree,而且当代理结束后,你会留下零散的目录,需要手动清理。
解决方案:Git Worktrees
Git worktree 允许你在同一个仓库中同时检出多个分支,每个分支在自己的目录中,且共享同一个 .git 文件夹。没有历史记录的重复,创建瞬间完成。
问题是?内置的 git worktree 命令使用起来很笨拙。你必须手动管理路径、自己命名,并记住所有位置。
于是有了 git-wt
我编写了 git-wt —— 一个 Bash 包装器,让 worktree 的使用变得轻松。
典型工作流
# 从 main 创建 3 个相互隔离的 worktree
git wt add main --copy-env # → "swift-jade"
git wt add main --copy-env # → "bold-ember"
git wt add main --copy-env # → "calm-frost"
# 在不同的编辑器窗口中打开它们
git wt open swift-jade --editor cursor
git wt open bold-ember --editor cursor
git wt open calm-frost --editor cursor
# 在每个窗口中启动 Claude Code / AI 代理
# 它们独立工作——不会冲突关键特性
- 自动命名 – 每个 worktree 会得到一个易记的形容词‑名词组合,如
swift-jade。不再需要思考路径。 - 集中存储 – 所有 worktree 均放在
~/.git-wt/,不再污染项目目录。 --copy-env– 自动复制.env等配置文件,使 worktree 从一开始就可直接运行。- Shell 自动补全 – 为 Bash 和 Zsh 提供完整的 Tab 补全(命令、标志和 worktree 名称)。
- 编辑器集成 –
git wt open --editor code可直接在编辑器中打开对应的 worktree。 - AI 代理支持 – 附带
SKILL.md文件,Claude Code 等工具可以自行发现并使用git-wt,无需手动粘贴命令或解释 API。
安装
git-wt 纯 Bash 实现,无任何依赖:
curl -fsSL https://raw.githubusercontent.com/kuderr/git-wt/main/install.sh | bash之后,它作为 git 子命令使用:git wt。
超越 AI 代理的使用场景
虽然我最初是为 AI 代理工作流而构建它,但在需要同时处理多个分支的任何情形下都很有用:
- 代码审查 – 在独立的 worktree 中检出 PR,同时保持当前工作不受影响。
- 热修复 – 快速为修复创建 worktree,无需 stash 当前更改。
- 测试 – 在一个 worktree 中运行测试,同时在另一个 worktree 中进行开发。
试一试
GitHub:
欢迎点赞和反馈。如果你有功能需求,请提交 issue —— 我正在积极开发中。