← 返回 runpane.com术语表
什么是 Git Worktree?
Git worktree 是代码仓库在独立分支上的另一份副本。它与主仓库共用同一份 git 历史,但文件放在自己的文件夹中。你可以同时打开任意多个 worktree。
worktree 解决了什么问题
通常,一个仓库就是一个文件夹,一次只能检出一个分支。如果你想同时开发两个功能,就得先把修改存进 stash,再切换分支。做完另一项工作后,还得切回来并恢复 stash。很麻烦。
有了 worktree,你会得到第二个文件夹,而且它已经在另一个分支上。一个文件夹开发功能 A,另一个开发功能 B。不用暂存,也不用来回切换。两边可以同时存在。
为什么 AI 智能体需要它
如果两个 AI 智能体在同一个文件夹中运行,它们会覆盖彼此的修改。智能体 A 修改 auth.ts。智能体 B 也修改 auth.ts。最后保存的人赢,另一个智能体的工作会丢失。
Worktree 能解决这个问题。每个智能体都有自己的文件夹、分支和文件副本。它们可以同时修改 auth.ts,不会互相干扰。完成后,你再分别合并每个分支。
磁盘上的目录结构
my-project/ ← your main repo (main branch)
../my-project-feature-a/ ← worktree (feature-a branch)
../my-project-feature-b/ ← worktree (feature-b branch)
三个文件夹共用同一份 git 历史。一个 worktree 中提交的修改,在合并后会出现在其他 worktree 中。但未提交的文件修改完全隔离。
Pane 如何自动管理 worktree
你不用自己运行 git 命令。在 Pane 中创建新 pane 时:
- Pane 会替你创建 worktree 和分支。
- 它会复制环境变量、node_modules 和其他重要目录,让智能体马上开始工作。
- 归档 pane 时,Pane 会自动清理 worktree。
手动操作方式,仅供参考
如果不用 Pane,你需要这样做:
git worktree add ../feature-a feature-a
cd ../feature-a
claude # start your agent here
# when done:
git worktree remove ../feature-a
Pane 一次点击就能替你完成这些操作。
相关文档
- Pane 与 Worktree,Pane 如何管理 worktree
- 并行运行智能体,完整的并行工作流
- Monorepo,如何在 monorepo 中使用 worktree
- 适合 AI 智能体的 Git Worktree,落地页概览
常见问题
Git worktree 是代码仓库的一份独立检出。它有自己的文件夹、分支和文件,但与主仓库共用同一份 git 历史。你可以同时打开多个 worktree,每个都在不同的分支上。
分支只是指向某个提交的指针。一个文件夹一次只能检出一个分支。Worktree 会给你第二个、第三个甚至第四个文件夹,每个文件夹都检出了自己的分支。你可以同时编辑所有文件夹中的文件。
克隆会复制整个仓库,包括全部 git 历史。Worktree 与原仓库共用 git 历史,几乎不占额外磁盘空间,还会自动保持同步。
如果两个智能体在同一个文件夹中修改相同文件,它们会覆盖彼此的修改。Worktree 会给每个智能体一份隔离副本。智能体 A 可以在一个 worktree 中修改 auth.ts,智能体 B 可以在另一个分支的 worktree 中修改 auth.ts,互不冲突。
会。创建新 pane 并启用 worktree 后,Pane 会替你运行 git worktree add、设置分支、复制环境变量和 node_modules。归档 pane 时,它还会清理全部内容。
可以。在“新建 Pane”对话框中关闭“使用 Worktree”。智能体会在主工作树中运行,不再使用隔离分支。适合不需要隔离的一次性小任务。
支持。每个 worktree 都会包含完整的 monorepo,因此智能体可以并行处理不同的软件包。让每个智能体只处理自己的软件包目录,它们就不会互相干扰。
或下载*Windows SmartScreen 警告Pane 尚未签名,直接下载时可能会出现 SmartScreen 警告。 Pane 完全开源,你可以审查代码,也可以自己从源码构建。1. 点击“更多信息”2. 点击“仍要运行”3. 继续安装用 PowerShell 安装会直接下载官方版本,避开大多数浏览器下载限制。npm 全局安装 把它粘贴到 PowerShell 中。MacLinux