我如何在同一个仓库中使用 Git Worktrees 并行运行 5+ AI Agents

发布: (2026年2月24日 GMT+8 21:48)
4 分钟阅读
原文: Dev.to

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 —— 我正在积极开发中。

0 浏览
Back to Blog

相关文章

阅读更多 »