
1. 传统分支切换的痛stash 来 stash 去任务只能串行手上功能写了一半线上突然出了紧急 Bug老办法还是git stash→git checkout→ 修 → 切回来 →git stash pop。切回来那一刻刚才的思路已经碎了一半。等你想让 Claude Code 在另一个分支里并行修 Bug 时又发现 Key 和模型通道得单独配一遍。这篇文章就用 Git Worktree 把多任务拆成独立工作现场再用 TaoToken 把多个 Claude Code 会话的认证统一起来。先看看没有 Worktree 时的日常。你正在feature/user-auth分支上写登录功能线上突然报了一个登录崩溃的 Bug于是开始熟悉的流程# 保存当前进度 git add . git stash -m WIP: user auth 开发到一半 # 切到主分支修 Bug git checkout main git checkout -b hotfix/login-crash # 修完测试提交 git commit -m fix: login crash # 回到原来的开发分支 git checkout feature/user-auth git stash pop这套流程最伤人的不是敲命令而是第四步。等你stash pop之后看着满屏半成品代码要花十分钟才想起来刚才想到哪个方案、那个 TODO 注释是想干什么、这个函数的参数为什么要那么传。上下文切换成本高、开发环境要重新装依赖、A 任务没做完就不能切去 B 任务所有事情天然串行。更麻烦的是当你想让 Claude Code 参与进来时问题会放大一个量级你给 Claude Code 讲了一遍任务背景它刚进入状态你又让它切去处理另一个需求它的上下文里残留着上一个任务的信息文件改了一半又没法安全切换分支。这种情况下「让人工智能并行」反而变成了一种负担。2. Git Worktree 是什么一个仓库多份独立工作现场Git Worktree 的解决方案很直接同一个 Git 仓库同时 checkout 多个分支到不同的目录。每个目录都是一个完整的工作现场有自己的文件、自己的依赖目录、自己的运行环境互不干扰。一个 Git 仓库 → 多个工作目录 ~/project/main - 主工作区feature/user-auth 分支你自己写代码 ~/project/project-hotfix - 热修复区hotfix/login-crash 分支Claude Code 在修 Bug ~/project/project-experiment - 实验区experiment/new-algo 分支Claude Code 在跑实验关键点在于它们共享同一个.git目录。Git 对象、提交历史、引用全部共用不会因为开了几个 worktree 就把磁盘重复占满但每个 worktree 的工作区文件是独立的npm install、构建产物、本地配置各自隔离。同时有一条硬性规则同一个分支不能同时出现在两个 worktree 中。也就是说你不能在主目录 checkoutfeature/user-auth又在另一个 worktree 里 checkout 同一个分支Git 会直接拒绝这是后面避坑部分会提到的经典报错。3. 为什么 Worktree 是 Claude Code 并行任务的最佳拍档Claude Code 这类 CLI 编程助手在一次会话中会做大量文件读写、搜索和上下文分析。如果让它中途切换任务问题非常明显上下文污染A 任务和 B 任务的代码信息混在同一段对话里Claude Code 说着说着就把文件路径搞混了。文件冲突AI 改了 A 任务的文件还没提交这时候切分支要么被 Git 拒绝要么被迫 stash。解释成本高每次切换任务都要重新交代一遍背景等于把 AI 的进度条清零重来。Worktree 的解法相当于给每个任务开一间独立工位终端窗口 1~/project/main 分支feature/user-auth 角色你本人开发登录功能手动编码 AI 辅助 终端窗口 2~/project/project-hotfix 分支hotfix/login-crash 角色Claude Code 会话 A修线上支付回调 Bug 终端窗口 3~/project/project-experiment 分支experiment/recommend-ab 角色Claude Code 会话 B搭建推荐算法 A/B 测试框架三个任务同时推进Claude Code 在任何目录下直接claude启动不会互相踩到文件。需要切换时cd到对应目录就行几乎零成本。但新问题随之而来多个 Claude Code 会话各自都要过认证Key 和模型通道来回切很容易串台。这也是我后来把整个流程换成 TaoToken 统一接入的原因后面配置章节会细说。4. Worktree 基础操作add / list / remove 一条龙先过一遍基础命令后面实战就用得上。# 创建 worktree基于现有分支 git worktree add ../project-hotfix hotfix/login-crash # 创建 worktree同时新建分支 git worktree add -b feature/product-detail ../project-detail main # 基于指定 commit 创建detached HEAD 也可以 git worktree add ../project-experiment a1b2c3d路径命名建议用「项目名-用途」的格式放在项目目录的同级一眼能看出哪个 worktree 在做什么。查看和管理# 列出所有 worktree git worktree list # 删除 worktree git worktree remove ../project-hotfix # 如果 worktree 里有未提交修改Git 会拒绝删除加上 --force 强制删 git worktree remove --force ../project-hotfix # 手动删目录后清一次元数据 git worktree prune在 worktree 里工作跟普通仓库没有区别git status、git add、git commit都能用。唯一要记住的是每个 worktree 需要独立安装依赖npm install各跑一遍。5. 实战三个 Worktree 并行跑Claude Code 各干各的5.1 场景设定假设你在做一个电商项目手头同时压着三个任务任务优先级预计工作量商品详情页重构中2 天支付回调验签 Bug紧急2 小时推荐算法 A/B 测试低1 天以前只能先修紧急 Bug再做详情页A/B 测试基本排不上。现在用 Worktree 拆分你主攻详情页Claude Code 的会话 A 修 Bug会话 B 搭 A/B 测试框架。5.2 搭建并行工作环境cd ~/projects/ecommerce # 确保主工作区干净 git status # 创建三个 worktree都基于 main git worktree add -b feature/product-detail ../ecommerce-detail main git worktree add -b hotfix/payment-callback ../ecommerce-hotfix main git worktree add -b experiment/recommend-ab ../ecommerce-abtest main5.3 启动 Claude Code 前先把认证统一到 TaoToken这一步是对应原本启动claude之前的认证环节。以前你要么去官方后台生成 Token要么在多个环境变量之间来回切换几个会话跑起来之后谁用的是哪个 Key 都分不清。现在统一走 TaoToken打开 TaoToken 注册并创建一个 API Key然后在 Claude Code 的配置文件里把 Base URL 指过去。我推荐直接在~/.claude/settings.json里写全局配置这样所有 worktree 里的 Claude Code 都自动生效不用每个目录配一遍{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: 从模型广场复制的模型ID } }注意几个容易踩的点ANTHROPIC_BASE_URL填https://taotoken.net/api末尾不要加/v1。很多工具默认会在后面补/v1你手动再加就会变成/api/v1请求直接 404。YOUR_API_KEY是占位符实际值从 TaoToken 控制台创建不要把官网链接地址当成 Key 填进去。ANTHROPIC_MODEL填什么以 TaoToken 的模型广场为准里面写的模型 ID 是什么就复制什么。如果你不想写全局配置也可以在终端里用环境变量效果一样export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODEL从模型广场复制的模型ID5.4 分配任务并启动会话配置写好后每个 worktree 里直接claude启动不需要再关心认证问题。# 终端 2ecommerce-hotfix让 Claude Code 修支付 Bug cd ~/projects/ecommerce-hotfix claude # 会话中输入 # 帮我定位并修复支付回调验签失败的 Bug相关日志在 logs/payment.logClaude Code 会在隔离的 worktree 里完成搜索、分析、修改、测试和提交全程不碰你主工作区的文件。# 终端 3ecommerce-abtest让 Claude Code 搭 A/B 测试框架 cd ~/projects/ecommerce-abtest claude # 会话中输入 # 基于 feature flag 模式帮我搭建推荐算法的 A/B 测试框架两个 Claude Code 会话共用同一把 TaoToken Key互不影响。你回到终端 1 继续写详情页代码三个任务真正并行。5.5 合并结果任务完成后回到主仓库统一合并cd ~/projects/ecommerce git checkout main git pull origin main git merge hotfix/payment-callback git merge feature/product-detail git merge experiment/recommend-ab # 解决冲突、测试、推送 git push origin main5.6 清理现场# 任务全部完成删除 worktree git worktree remove ../ecommerce-hotfix git worktree remove ../ecommerce-abtest git worktree remove ../ecommerce-detail6. 进阶技巧环境变量隔离、多端口运行、脚本一键建现场6.1 环境变量隔离每个 worktree 需要不同配置时用.env.local并加入.gitignore# ecommerce-detail/.env.local DB_HOSTlocalhost DB_NAMEecommerce_dev PORT3001 # ecommerce-hotfix/.env.local DB_HOSTlocalhost DB_NAMEecommerce_test PORT3002这样一来Claude Code 在 hotfix worktree 里改代码时读的是测试库配置不会污染你的开发库。6.2 同时运行多个实例如果项目是 Web 服务不同 worktree 可以跑在不同端口# 终端 1 cd ~/projects/ecommerce PORT3000 npm run dev # 终端 2 cd ~/projects/ecommerce-hotfix PORT4000 npm run dev # 终端 3 cd ~/projects/ecommerce-abtest PORT5000 npm run dev三个浏览器标签页分别预览三个分支的效果互不干扰。6.3 依赖安装策略每个 worktree 默认都要npm install一次磁盘和时间上确实有点代价。如果不想每个都装推荐用 pnpm它会通过硬链接共享依赖存储同时每个 worktree 里仍然有独立的 node_modules 视图。手动软链接 node_modules 不推荐版本容易不一致AI 在某个 worktree 里装了额外依赖另一个 worktree 感知不到。6.4 脚本一键创建 worktree频繁开 worktree 的话可以写个脚本顺手装依赖#!/bin/bash PROJECT_DIR$(pwd) TASK_NAME$1 BRANCH_PREFIX$2 BASE_BRANCH${3:-main} worktree_dir../$(basename $PROJECT_DIR)-$TASK_NAME branch_name$BRANCH_PREFIX/$TASK_NAME git worktree add -b $branch_name $worktree_dir $BASE_BRANCH cd $worktree_dir npm install echo worktree 就绪$worktree_dir echo 进入并启动 Claude Codecd $worktree_dir claude6.5 Claude Code 专属技巧Claude Code 支持从任意目录启动配合 Worktree 很顺# 在 worktree 里启动全新会话 cd ~/projects/ecommerce-hotfix claude # 继续之前的会话 cd ~/projects/ecommerce-hotfix claude --resume # 直接给一个明确指令让它后台跑完整个流程 cd ~/projects/ecommerce-hotfix claude -p 定位并修复支付回调验签失败的 Bug完成后 commit 并说明修改内容-p模式特别适合不需要交互的独立任务Claude Code 会自己分析、修改、测试、提交做完就退出也不占用你的终端。7. 常见问题和避坑Worktree 报错对照 TaoToken 认证排障7.1 不能在两个 worktree 里 checkout 同一个分支fatal: feature/login is already checked out at /Users/me/project这是 Worktree 最常见的报错。解法很简单每个 worktree 用独立分支需要共享代码时走 merge 而不是共享分支。7.2 不要 rebase 另一个 worktree 正在使用的分支如果你在主目录对某个分支执行 rebase而另一个 worktree 正 checkout 着这个分支那个 worktree 的文件状态可能变得不可用。操作前先用git worktree list确认没有 worktree 正在操作目标分支。7.3 不要跨 worktree 直接改文件比如在~/projects/ecommerce里去编辑../ecommerce-hotfix/src/payment.js虽然技术上能改但文件监听、构建缓存都可能出错。每个 worktree 的改动在自己的目录内完成这是并行开发的底线。7.4 TaoToken 认证相关的典型报错如果配置完之后 claude 启动请求失败按下面顺序排查第一请求 404。检查ANTHROPIC_BASE_URL是不是写成了https://taotoken.net/api/v1。TaoToken 的接口地址是https://taotoken.net/api末尾不要带/v1工具会自动补全。第二请求 401。检查ANTHROPIC_AUTH_TOKEN是不是把官网链接地址当成 Key 填了或者 Key 复制的时候多复制了一个空格。Key 从 TaoToken 控制台创建复制完整字符串。第三模型不存在。检查ANTHROPIC_MODEL填的 ID 是否在模型广场里存在。不同渠道的模型命名可能不一样不要凭记忆写去模型广场复制最稳。7.5 验证 TaoToken 是否生效随便挑一个 worktree进入后启动 claude让它做一次轻量请求比如让它读一下当前目录的package.json并总结项目结构。如果它正常响应说明认证已经通了。之后回到官网控制台能看到刚才这次请求的用量记录账对上就说明整条链路没问题。8. 收尾Worktree Claude Code 并行开发的新范式用了这个工作流之后我的习惯已经完全变了每个新任务进同一个仓库都会先开一个 worktree再让 Claude Code 在里面跑不再有「等一个任务做完再开下一个」的焦虑。你可以把 worktree 理解成给每个任务安排一间独立操作间Claude Code 在哪个操作间开工取决于你cd到哪个目录。而 TaoToken 在这套流程里扮演的是「一把钥匙开多个门」的角色——多个 worktree 里的 Claude Code 共用同一把 Key 做统一接入不用在官方后台和工具配置之间反复折腾。如果你也想让手头的并行任务真正跑起来建议先去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册、创建一把 API Key按第 5.3 节的配置写完再创建一个 worktree 试一次最简单的请求。跑通之后你就能体会到「三个任务同时推进、上下文互不串台」的开发节奏了。