Claude Code Agent Teams 可以将任务按团队开发模式分饰多角并行开发,但这种工作模式仍然建立在单一工作区和单个任务的基础上。
如果想要并行开发多任务,就需要用到 Worktree 功能。
Claude Code Worktree 功能在 2025 年 2 月就发布了,Anthropic 负责人 Boris Cherny 称它为"排名第一的生产力技巧"。
Worktree 的优势与限制
优势:
- 支持多 Claude Code 实例和多任务并行开发
- 环境隔离互不影响
限制:
- 总是从远端默认分支签出
- 指定分支签出需要 Git 原生命令配合

Worktree 简介
Worktree 是 Git 的原生功能,Claude Code 的 --worktree 命令将这个功能封装得更加简单易用,一条命令就能创建隔离环境、启动 Claude 实例、完成后自动清理。
技术特点:
- 共享数据库:Worktree 共享同一个.git 数据库,所有的提交历史、分支信息都是共享的
- 独立文件状态:每个 worktree 维护独立的文件状态,同时共享 git 历史记录
- 自动化管理:自动创建隔离环境、启动 Claude 实例,并在任务完成后自动清理
使用场景
日常使用 Claude Code 的开发模式是以文件目录为工作区,使用 Git 进行版本控制,这就意味着工作区每次只能有一个工作分支。如果启用多个 Claude Code 窗口进行开发就会导致代码冲突。现在有了 Worktree 就可以很好地处理这种使用场景。
苏米注:Worktree 也不是万能的,在小任务上使用反而浪费时间,因为使用 Worktree 需要经历创建环境、安装依赖、开发、合并等过程,可能比任务本身耗时还久。
Worktree 更适合以下使用场景:
- 功能解耦:当你有多个互不相关的 Feature 或 Bug 需要同时开发/修复时
- 长时任务托管:对于需要运行很久的任务(如大规模重构或跑大型测试),可以开一个 Worktree 让 Claude 慢慢跑,不影响你在主目录继续写代码
- 实验性改动:在完全隔离的环境中进行风险较高的尝试,即便写烂了也不会影响主分支的稳定性
前置条件
在 Claude Code CLI 中使用 Worktree 需满足以下条件:
- Git 初始化:必须在已初始化的 Git 仓库目录中
- 至少有一个 commit:空仓库无法创建 worktree
- 有远程默认分支:必须有远程默认分支,Claude Code CLI Worktree 默认从远程分支检出


基本使用:创建 Worktree
首先确保项目已经初始化过 Git 即项目中包含.git 目录。
在命令行终端输入git remote show origin查看远程分支信息。
我们可以验证一下 Worktree 的默认迁出分支是不是默认远程分支。首先基于 main 分支创建一个 dev 分支,在本地 main 分支添加"branch main"标识,在本地 dev 分支添加"branch dev"标识。



接着使用 --worktree 或 -w 参数启动 Claude Code CLI:
# 创建名为 "feat-home" 的 worktree 并启动 Claude
$ claude -w feat-home
# 自动生成随机名称(如 "curious-marinating-flamingo")
$ claude -w
启动后可以看到 Claude Code 在工作区.claude/worktrees 目录下创建了 2 个新的工作区目录。

打开 Worktree 工作区下的 README 文件可以看到均是未做过修改的,可以排除 Worktree 的代码是从本地本分支创建的。

我们也可以让 AI 帮我们分析,可以看到 AI 通过 git log、git merge-base 等信息确认:worktree 是基于 origin/main 创建的,而非当前分支。

在启动的 Claude Code CLI 中执行!pwd 可以看到当前工作区目录已经变成了 Worktree 工作区目录,已经不再是默认的主工区目录了。

Worktree 除了创建了工作区目录,还同样创建了 Git 分支,在 Cursor 等 IDE 中可以很直观地看到。

苏米注:从上面验证可以看到,Claude Code CLI Worktree 命令主要做了 4 件事:在.claude/worktrees/ 目录下创建新的工作目录;创建名为 worktree-的新分支;从远端默认分支检出代码;在 Worktree 新目录中启动 Claude Code。
从特定分支签出
Claude Code Worktree 默认是从远端的默认分支签出代码的,如果想从指定分支签出代码,我们可以通过 AI 创建或者使用 Git 原生命令创建。
通过 AI 创建
首先在当前分支添加分支标识并提交(没有提交的内容从当前分支签出时无法同步签出)。

在当前 Claude Code CLI 会话中直接让 Claude Code 创建 Worktree:

查看新创建的 Worktree 工作区中的 README 文件是包含我们上面添加的分支标识的。

Git 原生命令创建
Claude Code CLI Worktree 是在 Git 原生命令基础上封装的,所以使用 Git 命令创建 Worktree 是可行且更强大的。我们切换到 dev 分支,在命令行终端执行如下命令基于当前分支创建 Worktree:
# 基于当前 HEAD 创建 worktree
$ git worktree add -b test-feature .claude/worktrees/test-feature HEAD
创建完成后和 Claude Code Worktree 创建的效果一致。

我们也可以基于特定的分支创建 Worktree:
# 基于某个特定分支
$ git worktree add -b hotfix-home .claude/worktrees/hotfix-home origin/develop
使用 Git 命令创建的 Worktree,我们可以进入到 Worktree 工作目录启动 Claude Code CLI:
$ cd .claude/worktrees/test-feature
$ claude
也可以直接使用 --worktree 参数启动,Claude Code CLI 会自动打开.claude/worktrees/test-feature 工作区。
退出与清理
当我们从 Worktree 中退出时,Claude Code CLI 会提示我们选择保留或删除,需要保留下次继续使用一定要选【Keep worktree】。

- Keep worktree:保留 Worktree
- Remove worktree:删除 Worktree 及所有文件更改、Commit
我们需要重新启用已存在的 Worktree 时,可以直接通过下面命令启动:
$ claude -w feat-home
代码合并
使用 Claude Code Worktree 开发并验证完成后,下一步就是要把改动合并到主分支,我们同样可以通过 AI 合并和手动合并两种方式来完成。
通过 AI 合并(推荐)
提交修改内容后,在 Claude Code CLI 会话中让 AI 帮忙合并:

把 worktree-test-feature 分支改动合并到当前分支
如果 worktree 中某些不想要的 commit,可以选择性的 cherry-pick:
查看 worktree-test-feature 分支所有 commit 历史,把修改 README 的 commit cherry-pick 到当前分支
该示例中我们修改了 dev 和 worktree-test-feature 中的 README 文件,在合并时会出现冲突,我们只需告诉 AI 合并规则就行,比如我这里是"保留双方更改",也可以在 IDE 中手动进行合并。

合并完成后,我们就得到最终合并后的代码,合并后可以看到 Claude Code 同时清理了 test-feature Worktree 工作目录和分支。

手动合并
直接在命令行终端输入下面命令进行合并:
$ git merge feat-new-feature

或者在 IDE 中选择【分支】【合并】。

与通过 AI 合并方式不同的是,手动合并 Claude Code CLI 不会帮我们清理合并后的 Worktree 和分支,我们需要手动进行清理。

使用如下命令清除 Worktree:
$ git worktree remove .claude/worktrees/feat-new-feature
注意事项
worktree 删除失败
Worktree 没有被删除时分支是不能被删除的。

需要手动使用 Git 命令或手动删除 Worktree:
$ git worktree remove .claude/worktrees/feat-new-feature
删除完成后即可删除分支。

总结
Claude Code Worktree 是一个强大的多任务并行开发工具,特别适合需要同时处理多个功能开发、Bug 修复或实验性改动的场景。通过环境隔离,可以避免代码冲突,提高开发效率。
使用 Worktree 的关键是理解它的工作机制——从远程默认分支检出、独立文件状态、共享 git 历史。掌握了这些,就能灵活运用 Worktree 处理各种复杂的开发场景。