什么时候会需要它?(那个确切的时刻)
这个时刻会在你的项目变大、而一个 AI 一次只做一件事已经不够用时到来。你想更快推进:一个会话在做某个功能的同时,另一个在修 bug,第三个在试一个新点子——全都同时进行。当你在两条路之间犹豫(“这样做还是那样做?”)、想在决定前把两个都看一遍时,也会遇到这个时刻。或者当你想试一个有风险的东西、又不碰已经能用的部分时。在所有这些情况里,在你唯一的一份版本上一次只做一件事,既慢又脆弱。
什么是 “worktree”?(说人话)
在 GitHub 指南里你见过分支(rama):项目的并行副本。worktree 把这个再往前推一步:它让你能把好几个这样的分支同时打开、同时鲜活地跑着,每个都在自己的文件夹里,互不相碰。当一个 AI 在做“点子 A”时,另一个可以在做“点子 B”,而你的主版本完好如初。不是一次一个——而是全部同时。
这个超能力 · 一个点子一个分支,在 VS Code 里配合 Claude
Claude Code 有一个 VS Code 官方扩展(在 Cursor 及兼容编辑器里也能用)。从那里你可以并行打开好几个 AI 会话,每个在自己的 worktree 里,并且通过一个可视化 diff(并排对比)看到它提议的改动,你可以批准或拒绝。最棒的是:创建一个隔离的 worktree 只需一条命令。
claude --worktree mi-idea-arriesgada
这会在一个新分支上创建你项目的一份隔离副本(在 .claude/worktrees/mi-idea-arriesgada/ 里),完全不碰你的主版本。你在那里做这个点子;如果成了就并进去,如果不成就删掉,什么都没发生。你可以用 claude --worktree otra-idea 再开一个会话,让两个同时较劲。
3 个能救你命的场景
我们就是这样干活的 · 多个会话同时跑(那个巨大的加速器)
这是最大的好处,也正是我们构建的方式:与其用一个 AI 排成一列往前走,我们让好几个会话并行工作,每个在自己的 worktree 里。会话 1 在做产品的某个部分,会话 2 在搭另一样完全不同的东西,会话 3 可能在试一个新点子——三个同时推进,互不干扰。就像有三个员工而不是一个,每人在自己的工位上,互不添乱。
可视化 review · 你批准或拒绝,你说了算
在 VS Code 里,当 AI 想改某个文件时,它会给你展示一个并排对比:原来是什么 vs. 它提议改成什么。由你决定:接受、拒绝,或者告诉它改什么。什么都不会背着你改动。就像员工在动手前把每一处改动都先给你看,而不是全动完了你事后才知道。
黄金习惯 · 并行推进而不乱套
- 一个会话 = 一个分支/worktree:每条战线都在自己隔离的副本里。绝不让好几个挤在主版本上。
- push 到你自己的分支,绝不推到主分支:每个会话存在自己那里;主分支只通过 merge 接收。
- 合并前先用 C-A-R 审计:任何分支不先过审计/除虫,都别进主分支。
- 在接受之前,先在 VS Code 里看 diff——你说了算,不是 AI。
- 只合并做到无懈可击的那份:做完并审计过的那块才并进去;没成的点子直接删掉,别有心理负担。
现成 prompt · 搭起你的并行工作流
复制它,粘给你的代码 agent,让它带你同时在多条战线上工作,你不用去学任何命令:
我想在我的项目上更快推进,用多个会话并行工作,每个都在自己独立隔离的版本里(worktree),彼此互不干扰、也不弄坏我的主版本。请用简单的语言引导我,假设我完全不懂 git。 1. 用一句话给我解释什么是 worktree(我项目的一份活生生的、隔离的副本)。 2. 我要同时在这些战线上工作:[列出你的任务,例如:“1) 重新设计首页,2) 修登录,3) 试一个新点子”]。为每一个从我稳定的版本分叉,创建一个专用的 worktree。 3. 告诉我怎么在每个 worktree 里打开 VS Code,以便可视化地查看 diff 并批准/拒绝改动。 4. 重要规则:每个会话必须 push 到它自己的分支,绝不能推到主分支(main)。主分支只通过 merge 接收东西。 5. 当我在某个 worktree 里做完一个任务、在合并它之前:对它施加 C-A-R 协议(审计、除虫、做到无懈可击)。到那时才把那个分支 merge 进主分支,并用自然语言解决任何冲突。 6. 如果某个点子没成,帮我丢弃它的 worktree,别让我的主项目察觉。 黄金法则:我并行推进,但进主分支的只有审计过的、通过 merge 进来的东西——绝不半成品。