6.4 分支、Worktree 与并行任务隔离

面向经管学生、研究者与从业者的 AI 智能体设计教材

作者

李学恒、林建浩、严翊歆、张一帆

最后更新

2026-06-24

6.4 配图

本地提交流程建立以后,接下来要解决的是并行任务的隔离问题。AI 协作的难点不在于改得慢,而在于多个目标混入同一条改动线。

什么时候该开分支

只要任务满足下面任意一条,就值得让 Claude Code 开一条分支:

  • 这轮修改会持续一段时间,不适合直接压在主线上
  • 需要单独审阅
  • 失败时要局部回退
  • 同时还有另一条改动线在推进

在 Claude Code 中输入:

▶ Claude Code
帮我从当前主线创建一条新分支,名字叫 chapter6-git-rewrite,切换过去。
之后这条线上的提交只服务这一轮目标,不要影响主线。

Claude Code 创建并切换到新分支,后续这条线上的提交就只服务本轮目标。主线代码始终保持可用状态。

Worktree:目录级隔离

分支隔离的是历史线,Worktree 隔离的是工作目录。对 AI 协作来说,目录隔离很关键,因为一个会话通常默认围绕当前目录展开。

如果两条任务线都开在工作区里,切换分支会让文件反复变动,会话状态容易混乱。Worktree 把不同分支检出到不同目录,每条任务线都有自己的工作现场。

让 Claude Code 建立 Worktree:

▶ Claude Code
帮我用 Worktree 在相邻目录创建一个独立工作副本,分支用 nav-fix。
我打算在那里单独推进导航修复,不和当前目录的章节重写混在一起。

Claude Code 会在相邻目录创建新工作树,把 nav-fix 分支检出到那里。你可以让另一条会话在那个目录里单独工作。

Claude Code 中的 Worktree 入口

Worktree 是 Git 原生功能,Claude Code 帮你自动创建和管理。在 Claude Code 中有三种触发方式,从最常用到最自动化:

触发方式 怎么用 适合场景
会话中用自然语言 对 Claude 说「在一个独立工作副本里继续」,它会调用内置工具创建隔离副本并切过去 工作到一半才发现需要隔离,不想中断当前会话
启动时直接指定 在终端输入 claude --worktree 任务名(简写 claude -w 任务名),会在项目下的 .claude/worktrees/任务名/ 里新建副本并直接开始 一开始就想让这次改动和主目录完全隔离
子代理隔离执行 在子代理配置里写 isolation: worktree,子代理在独立临时副本里执行,结束后无改动则自动清理 多个子代理并行改不同文件,避免互相覆盖
不必记忆这些方式

日常用自然语言对话就够,Claude 会处理创建和切换。上面三种入口知道存在即可,需要时再回来查。所有工作副本共享同一份仓库历史,退出时 Claude 会问你是保留还是删除。

对读者来说,更重要的判断不是参数如何记忆,而是这条任务线值不值得拥有独立目录和独立提交线。

判断标准

如果任务只是很小的局部修补,而且不会和其他任务并行,直接在当前分支上小步提交就够了。只有当下面两条同时成立时,才优先考虑 Worktree:

  1. 任务要并行推进
  2. 每条任务线都需要独立审阅和独立回退

例如同一天并行处理三件事:

任务 建议隔离方式
重写第 6 章 Git 正文 一条独立分支
修第 11 章 Hooks 目录映射 另一条分支,必要时单独 Worktree
调整前言中的第二篇顺序 改动小可并入同一分支;要反复试改则单独分支

关键不在分支越多越好,而在每条改动线都能明确目标。

判断口诀

需要并行推进且独立审阅——开 Worktree;只需隔离历史线——开分支;小修补不并行——当前分支小步提交即可。