你的项目文件夹 /my-app ├── main/ ← 当前稳定版本 ├── feat-login/ ← AI 正在做登录 └── hotfix/ ← 同时修线上 bug 三个文件夹,同一个项目 互不干扰,同时进行
Vibe Coding PM 零基础指南

Worktree
是什么?

让 AI 同时在多个任务上工作,互不打扰 — 用人话解释这个工具

📦 项目基础 🔀 并行工作 🤖 AI 工具 💡 决策指南
01 / 15
BASICS FIRST 02 / 15

在说 Worktree 之前,先搞清楚一件事

你的"项目"是什么

你让 AI 帮你做的产品,本质上是一堆文件放在一个文件夹里。

这个文件夹里有:网页代码、设计逻辑、数据处理… 你每次告诉 AI「帮我加一个功能」,AI 就在这个文件夹里改文件。

"分支"是什么

就像 Word 文档的「另存为草稿 B」。你在草稿 B 上实验,原版不受影响

满意了再合并进原版,不满意直接丢掉。

📄
类比:Google Docs 的草稿

主文档 = 正式版本(main 分支)
草稿 A = 你在测试的新功能
草稿 B = AI 正在帮你写的另一个功能

Worktree 让这些草稿同时"打开"在不同文件夹里,而不是只能一次看一个。

💡 一句话理解:Worktree = 让你同时拥有同一个项目的多个文件夹,每个文件夹是不同的版本,互不干扰。

THE PROBLEM 03 / 15

没有 Worktree 的世界 — 一张桌子的悲剧

🤖 AI 帮你做 搜索功能 进行到一半... 🚨 紧急! PM 说支付 功能崩了 线上 P0 事故 🧹 收拾桌面 把搜索功能的 工作先暂存 🔧 切换任务 修好支付 ✓ 等重新加载 5min 😱 恢复桌面 文件冲突! 之前的思路忘了 AI 上下文丢失 本质问题:你只有一张桌子,换任务必须先收拾再换,风险极高
😩

就像你只有一张办公桌,同时处理两个项目时,必须把 A 项目的资料全部收进抽屉,才能摆出 B 项目的资料。收的时候可能放错,下次找不到。

Worktree 的解法:给你多张桌子。A 项目占一张,B 项目占一张,随时走过去坐下就能继续,互不干扰。

WHAT IS WORKTREE 04 / 15

Worktree = 同一个项目的多张桌子

项目核心数据 所有版本历史记录 所有分支的代码 共享 · 不重复存储 🖥 桌子 1:主版本 正式上线的版本 文件夹: /my-app/main 🤖 桌子 2:新功能 AI 正在开发登录页 🚨 桌子 3:紧急修复 修线上 bug 文件夹: /my-app/hotfix 🧪 桌子 4:AI 实验 测试新方案
1️⃣
同一个项目
只存一份核心数据
2️⃣
每个文件夹独立
展示不同版本
3️⃣
随时走到任意桌子
继续工作
FOUNDATIONS 05 / 15

四个词,搞清楚才能往下理解

📦
仓库(Repository)
整个项目 + 所有历史的档案室

你项目的"总档案馆"。每次改动都有记录,想回到任何历史版本都可以。通常就是你本地那个项目文件夹。

👑
主干(Master / Main)
大家约定的"官方正式版"

本质是个普通分支,没有魔法。特殊只因为团队约定它随时可上线。就像书稿里贴了「终稿」标签的那份——标签是人贴的,不是天生的。

🌿
分支(Branch)
逻辑草稿,藏在数据库里

从某个版本"另存"出去的平行草稿。看不见、摸不着——它存在 Git 数据库里,是个逻辑概念,不是一个具体文件夹。

🖥
工作树(Worktree)
物理文件夹,把分支"打印"到桌上

让某个分支具体化成一个实际文件夹。你看得见、能改文件,AI 可以在里面工作。一个 Worktree 对应一个 Branch。

🔑 层级关系: 仓库(1个档案馆)→ 内含 N 个 分支(逻辑草稿)→ 其中 Master/Main 只是被贴了「终稿」标签的那个 → Worktree 是把某个草稿"取出来放到桌上",让你和 AI 可以实际操作

KEY DISTINCTION 06 / 15

分支 ≠ 工作树 — 逻辑 vs 物理

BRANCH — 逻辑概念
🌿

存在 Git 数据库里

就像一份草稿存在云盘里。它存在,但你没打开它,看不见文件,不能直接编辑,AI 也没法在上面工作。

📌 可以有几十个分支同时存在
它们安静躺在数据库里
占用空间极小,只存变化部分

WORKTREE — 物理存在
🖥

实际存在的文件夹

把云盘里的草稿下载打印出来放到桌上。你看得见每个文件,AI 可以读取和修改,实实在在存在于磁盘。

📌 一个分支同时只能对应一个 Worktree
多个 Worktree = 多个分支被同时"打开"
每个 Worktree 占真实磁盘空间

📚
书稿类比,一次打通

仓库 = 档案馆,存了所有书稿版本 · Master/Main = 贴了「终稿」标签的那份
分支 = 还在档案馆里没取出来的草稿(逻辑存在)· Worktree = 把某份草稿取出来放到你桌上(物理可用)

TOOL: CODEX 07 / 15
OpenAI Codex

Codex 怎么配合 Worktree 用

CODEX 本身

Codex CLI 是 OpenAI 的 AI 编程助手,你在终端里告诉它"帮我做 X",它就在当前文件夹里修改代码。

配合 Worktree 的场景
1先建好两个文件夹(两个 worktree)
2打开两个终端窗口,分别进入两个文件夹
3每个终端里各跑一个 Codex
4两个 AI 同时干活,互不影响
👷
就像雇了两个工人

工人 A 在 1 号工地干活(搜索功能),工人 B 在 2 号工地干活(支付功能)。两个工地互不干扰,你来回转一转就能看进度。

注意事项

两个文件夹的依赖包(node_modules)需要分别安装,不共享。这是唯一额外的工作量。

TOOL: CLAUDE CODE 08 / 15
Claude Code

Claude Code 把 Worktree 做成了一键功能

isolation: "worktree" 参数

当你让 Claude Code 帮你跑一个 AI 任务,加上这个参数后,Claude 自动帮你创建一个临时的独立文件夹,在那个文件夹里工作,不污染你当前的工作。

自动做的三件事
1任务开始 → 自动建新文件夹(worktree)
2任务完成有修改 → 告诉你文件夹在哪
3任务没有改动 → 自动清理,零垃圾
🏗
类比:临时施工区

Claude 在路边围起一块施工区(新文件夹),在里面施工,不影响主路通行。施工完成后告诉你结果,你决定要不要把施工成果并入主路。

对 PM 最有价值的地方
同时让 3 个 AI 任务并行,互不干扰
任何一个失败都不影响主项目
不需要懂 Git,Claude 全自动管理
TOOL: GITHUB 09 / 15

GitHub 里的同类思想

☁️
GitHub Codespaces
云端版的多张桌子

在云端为每个任务开一个独立的工作环境。不同任务开不同"空间",互不干扰,在浏览器里直接用。

🌐
GitHub.dev
按一个键切换版本

在 GitHub 网站按键盘上的 「.」,当前分支就会在浏览器里打开成可编辑状态。轻量、快速、无需下载。

🤖
GitHub Copilot
内部也用同样思想

Copilot 帮你写代码时,内部也会自动创建隔离环境,保证每次 AI 建议都是在"安全区"生成的,不污染你的主代码。

💡 规律:所有主流 AI 编程工具都在用"隔离工作环境"这个思路。Worktree 是这个思路的底层机制,懂了它,你就懂了这些工具背后在干什么。

PM SCENE 01 10 / 15
场景 1

同时推进两个功能,AI 各干各的

😩 之前的做法
1告诉 AI 做搜索,做到一半
2要换做支付,先把搜索收起来
3等 AI 重新加载上下文 5 分钟
4回来继续搜索,AI 忘了之前做到哪
⚡ 两个 AI 同时运行 🧠 上下文不丢失
✅ 有了 Worktree
1建两个文件夹:/search/payment
2打开两个 AI 窗口,分别在两个文件夹
3AI A 专心做搜索,AI B 专心做支付
4你在两个窗口之间来回看进度即可
🏭

就像流水线工厂:不同工位同时生产不同零件,最后组装。而不是一条线做完 A 再做 B。

PM SCENE 02 11 / 15
场景 2

线上出了 bug,不打断当前工作

🎯 真实场景

你正在让 AI 帮你重写用户中心页面,代码改了一半,乱成一团,还不能用。

🚨 突然:线上支付崩了,必须马上修

传统做法的风险

把改了一半的代码"存起来" → 切换到主版本修 bug → 再切回来"恢复"改了一半的代码 → 恢复时文件冲突,噩梦开始

✅ Worktree 的做法
1在主版本旁边新建一个 hotfix 文件夹
2让 AI 在 hotfix 文件夹里修 bug
3修完上线,hotfix 文件夹删掉
4回到用户中心文件夹,一切原封不动
🛠

就像你家装修到一半,门锁坏了,你去另一个房间修门锁,装修工地完全没动。修完回来继续装修。

PM SCENE 03 12 / 15
场景 3

让 AI 同时试 3 种方案,选最好的

🧪 场景

你不确定搜索功能用哪种方式实现更好,想让 AI 同时试 3 种方案,比较效果后选最优的。

没有 Worktree:

只能串行:AI 做方案 A → 你看效果 → 推倒重做方案 B → 再推倒做方案 C。每次都在原地改,前一个方案就丢了,无法对比。

✅ 有了 Worktree
1建 3 个文件夹:方案A、方案B、方案C
23 个 AI 同时工作,各自实现一种方案
3你分别打开 3 个文件夹,运行对比
4选方案 B → 把方案 B 的成果合并进主版本
5方案 A、C 文件夹删掉,干净利落
🎨

就像设计师同时出 3 套方案给你选,而不是你说"不行"之后才开始画下一套。选好了再深化。

PM SCENE 04 13 / 15
场景 4

给投资人的演示版本永远保持稳定

😅 常见尴尬

下午 3 点给投资人演示 demo,但开发版本 AI 正在猛改,随时可能崩。

以前的做法:祈祷 AI 今天别出错 😂

✅ Worktree 解法
1建一个 demo 文件夹,固定在稳定版本
2开发继续在主文件夹随便改
3演示时用 demo 文件夹,永远稳定
4想更新演示版本时,你决定什么时候同步
🏪
就像门店和仓库

门店(demo 文件夹)永远展示整洁稳定的商品,顾客看到的是完美状态。

仓库(开发文件夹)可以乱、可以在整理,顾客看不到。你决定什么时候把仓库的新品搬上货架。

🎯 演示永远不崩 🔧 开发随便折腾
SOUL CHECK 14 / 15
在你开始用之前

你真的需要 Worktree 吗?
灵魂三问

— 点击每个问题展开答案 —

Q1
你真的需要"同时做几件事"吗?
还是其实你每次只专注一件事,做完再做下一件?
说实话:如果你 99% 的时间是"告诉 AI 做一件事,等它做完,再说下一件事"——那你根本不需要 Worktree。

真的需要它的信号:你经常说"这个先放一放,先去救火,回头再继续",或者你想让多个 AI 并行干活。
Q2
这两件事真的互相独立吗?
还是其实 A 做完才能做 B,或者两件事会改同一个文件?
说实话:如果任务 A 的结果是任务 B 的输入,或者两个 AI 都要改同一个文件,并行只会制造冲突,比一个一个做还麻烦。

适合并行的信号:两件事完全不同的功能模块,改的是不同的文件夹或文件。
Q3
你能管好多个文件夹吗?
还是你会忘记自己在哪个文件夹里,让 AI 改错了地方?
说实话:Worktree 最大的风险是"把 A 任务的修改提交到了 B 文件夹"。如果你本来就经常搞混文件,Worktree 会放大这个问题。

建议:文件夹起名要清晰(feat-login、hotfix-pay),用不同的 IDE 窗口打开,每个窗口只做一件事。
DECISION 15 / 15

用不用 Worktree — 一张决策表

✅ 用,如果你是这样
🔀经常需要同时推进两个以上功能
🚨线上经常出紧急 bug 需要立刻处理
🤖想让多个 AI Agent 并行工作
🎯需要保留一个"永远可演示"的稳定版本
🧪想同时让 AI 试多种方案再选最优
💪能分清楚自己在哪个文件夹干什么
❌ 先别用,如果你是这样
👶刚开始用 AI 写代码,还没摸清楚流程
🎯每次只做一件事,做完了才换下一件
😵已经经常搞混文件,不知道哪个是最新的
🔗两个任务要改的是同一批文件
📦项目装依赖包很重,每次重装太浪费时间
🌱项目还很小,一个人维护,暂时不需要

© 2026 · wwei.ai · Wayne 研究室 · 技术图谱系列