一个现实的痛点
当一个 Claude Code 实例正在主工作区埋头干活时,突然来了一个紧急的小任务。传统的 git checkout 会切换整个工作区的状态,直接打断正在执行任务的实例。你需要一个方法,在主工作区之外开辟一个完全独立的"临时战场"。
答案藏在 Git 2015 年就发布的一个功能里:Git Worktree。它允许在同一个仓库中创建多个工作目录,每个目录独立检出不同的分支。这样,每个工作目录都能运行一个互不干扰的 Claude Code 实例,真正实现并行开发。
也正是这个能力,造就了前段时间 Claude Code 用量风波——有开发者利用 git worktree 全天候运行多个实例,单月 token 消耗高达数万美元。
理解 Worktree:从"切换频道"到"摆满收音机"
传统的 git checkout 像一台老式收音机,项目目录同一时间只能"收听"一个分支。切换分支意味着停下当前工作,还可能伴随 npm install 或重新编译的等待。
git worktree 的思路完全不同。它从同一个 .git 仓库出发,在文件系统中创建多个工作目录,每个目录锁定一个不同的分支。它们共享同一份 commit 历史,但各自独立运行,互不干扰。不需要某个工作目录了,git worktree remove 删掉即可,对其他目录毫无影响。
一句话概括:git worktree 把"时间上串行"的分支切换,变成了"空间上并行"的多目录共存。
以 Issue 为单位的并行开发流程
假设你需要同时处理两个独立任务:issue-12(修复 Bug)和 issue-13(开发新功能)。
创建并忽略 worktree 专用目录
在项目根目录创建一个文件夹,专门存放所有并行工作区:
mkdir worktrees
然后把它加到 .gitignore:
worktrees/
这一步很关键。把 worktrees 目录加到 .gitignore,是为了防止这个容器目录本身被 Git 跟踪。而里面的每一个 Worktree(比如 worktrees/issue-12)都是 Git 直接管理的完整工作区,内部的文件跟踪和提交完全不受影响。主干保持干净,各分支又能独立进行版本控制。
为每个 Issue 创建 Worktree
git worktree add worktrees/issue-12 -b fix/issue-12
git worktree add worktrees/issue-13 -b feat/issue-13
并行启动 Claude Code
cd worktrees/issue-12,启动一个 Claude Code 实例,开始修 Bug- 无需等待,立刻
cd worktrees/issue-13,启动另一个 Claude Code 实例,开始开发新功能
两个实例各自在独立的目录和分支下运行,完全不会互相干扰。
处理 Review 反馈也很丝滑
issue-12 的 Review 意见回来时,cd worktrees/issue-12,上下文瞬间恢复。修改、提交、更新 PR,然后 cd worktrees/issue-13 回去继续主线任务。彻底告别"等待"和"上下文切换"的消耗。
VS Code 中的实操步骤
在 VS Code 里配合使用会更直观:
- 安装插件:在 VS Code 自带的 Source Control 基础上,安装 Git Worktree Manager 和 Git History 两个插件
- 创建 Worktree:通过 Git Worktree Manager 的面板快速创建和管理多个工作目录
- 加入 Workspace:在新建的工作目录上右键,选择"Add folder to workspace"——这一步是为了让后续启动的 Claude Code 实例能正确定位到对应的独立工作目录
- 启动 Claude Code:在 Explorer 面板中打开某个 worktree 目录下的文件,再启动 Claude Code 实例,它的工作目录会自动设置为该 worktree
- 独立开发并提交:在各自的工作目录中让 Claude Code 完成开发,提交 commit
- 查看分支历史:打开 Git History 面板,会发现虽然开了多个工作目录,但分支提交记录与传统
git checkout单目录切换分支的情况完全一致,后续按常规合并流程处理即可 - 清理:任务完成后,在 Git Worktree Manager 中移除工作目录,再删除对应的文件夹
从人人协同到人机协同
这套并行工作流的底层逻辑,和 Git 当初为解决"人类分布式协同"设计的机制如出一辙——隔离、并行、集成。只不过协作对象从多个人类开发者,变成了一个人类管理者指挥多个 AI 实例。
对独立开发者来说,这意味着生产力的量级提升。以前一个人一次只能推进一个任务,现在可以同时推进多个。掌握这种"管理 AI 团队"的能力,可能比写代码本身更重要——毕竟代码 AI 会写,但拆解任务、分配优先级、整合成果,目前还是人类的活。