Git Worktrees
同时处理多个分支而无需 stash —— 每个分支在各自的文件夹中。
Worktrees 解决日常开发中最令人沮丧的问题之一:需要在正在进行某些工作时切换分支。使用 worktrees,你不需要切换 —— 你在第二个文件夹中打开另一个分支并同时处理两者。
什么是 Git Worktree?
通常,一个 git 仓库有一个工作目录 —— 你的文件所在的文件夹。在任何时刻,恰好一个分支在该文件夹中检出。如果你想查看不同的分支,你必须检出它,这会用自己的文件版本替换你的文件。如果你还没有提交当前工作,你必须先 stash 它,这很烦人且容易出错。
Worktree 是链接到同一 git 仓库的第二个(或第三个、第四个)工作目录。每个 worktree 有自己的分支检出、自己的文件状态和自己的历史。它们都共享相同的 .git 文件夹和提交历史 —— 它们只是同一仓库的不同窗口。
一个具体示例:你的 AI agent 正在 feature/payments 上构建新功能到一半。一位同事要求你审查他们在 fix/login-bug 上的 PR。与其 stash 你的功能工作,不如在单独的文件夹中为 fix/login-bug 创建一个 worktree。你在那里审查 PR,而你的功能分支在其原始文件夹中保持不受影响。
创建 Worktree
- 打开 Git 面板 —— 按 Cmd+G
- 点击面板顶部的 Worktrees 标签
- 点击 + Add Worktree
- 选择一个分支 —— 从列表中选择现有分支或输入新分支名称创建一个
- 选择新 worktree 的文件夹位置(默认情况下,1DevTool 建议在当前项目文件夹旁边创建一个文件夹)
- 点击 Create —— 1DevTool 运行
git worktree add并将新 worktree 文件夹打开为活跃工作区
新 worktree 现在列在 Worktrees 标签中,与你的主 worktree 并列。

Worktree 终端
当 1DevTool 创建 worktree 时,它还会打开一个作用域到该 worktree 文件夹的新终端。分支名称出现在终端标题中,这样你始终知道你在哪个分支上工作。
该终端中的 AI agent 在 worktree 文件夹中操作 —— 它可以读取和写入文件、运行命令并在那个分支上进行更改,而不会感知或干扰你的其他分支。


你可以在多个 worktrees 中同时运行 agent。一个 agent 处理支付功能,另一个在不同分支上修复 Bug。两个 agent 都有自己的终端、自己的文件上下文和自己的分支 —— 它们不会相互冲突。
移除 Worktree
当你完成一个 worktree —— PR 已合并,分支已删除 —— 你可以干净地移除它:
- 打开 Git 面板 并转到 Worktrees 标签
- 找到你想要移除的 worktree
- 点击旁边的 trash icon
- 确认删除
这会移除 worktree 文件夹并从 git 注销(相当于 git worktree remove)。分支本身不会被删除 —— 只是工作目录。如果需要,你可以稍后重新创建 worktree。
提示: 使用 worktrees 在功能分支上运行 AI agent,同时保持 main 稳定。Agent 不会意外破坏你的 main 分支。
Worktrees 是 git 中最被低估的功能之一。在 AI 辅助开发的背景下 —— agent 可能在几分钟内进行数十次文件更改 —— 能够将每个 agent 的工作隔离到其自己的分支和文件夹是一个重要的安全网。