并行一开,最先崩的是「同一份工作目录」
一个人同时让 Claude Code 改登录页、修接口、补测试,很常见。麻烦也立刻出现:两个会话都在同一个 checkout 里写文件,A 改完的内容被 B 覆盖,stash 来不及,分支也乱。
表面上是「多开几个终端」,根因是多个 Agent 共享了同一份工作树。解决办法也很直接:每个会话独占一个目录、一条分支,改完再用 diff 决定合不合。Claude Code 本身就支持 claude --worktree,不必先装第三方编排工具。
下面按步骤在一台常开的新加坡 Mac mini 上配好。
准备清单
- 一台常开的 Mac mini(整机租用或自有设备托管),已装好 Claude Code,并用你自己的账号登录
- 仓库是 git 项目,本地能正常
git status/git fetch - 已安装
tmux(brew install tmux),方便每个会话挂在独立窗口里 - 对这个仓库有清晰的任务切分:例如「登录 UI」「支付 API」「测试补全」三条互不依赖的线
步骤一:先确认「不要共用一个 checkout」
在仓库根目录执行 pwd 和 git rev-parse --show-toplevel,确认你现在站在主工作树。关掉所有已经开着的、指向这个目录的 Claude Code 会话,避免一边配 worktree、一边还有 Agent 在写主目录。
原则只有一句:一个 Claude Code 会话对应一个目录。 主目录留给你自己做合并和验收;Agent 只在各自的 worktree 里干活。
步骤二:用 Claude Code 自带的 worktree 开并行会话
官方 CLI 可以直接按名字建工作树。在 Mac mini 上开两个终端(或两个 tmux 窗格),分别执行:
claude --worktree login-ui—— 为「登录页」任务建独立工作树和新分支,再进入 Claude Code。claude --worktree pay-api—— 为「支付接口」再建一个。
Claude Code 会把工作树放到项目下的 .claude/worktrees/<名称>/(具体路径以你本机版本提示为准),并检出对应分支。每个会话只改自己那棵树里的文件,不会直接踩主工作树。
若某次需要手动建树(例如要固定相对路径),也可以:
git worktree add -b feat/login-ui ../app-login-uicd ../app-login-ui && claude- 任务结束后:
git worktree remove ../app-login-ui(先确认分支已推送或已合并)
两种方式选一种坚持用即可,不要混着命名,免得之后分不清哪个目录对应哪条线。
步骤三:用 tmux 给每个会话起固定名字
并行时最怕「到底哪个窗口在改登录」。在 Mac mini 上:
tmux new -s cc-login,进入 login 的 worktree 目录,再启动对应的claude(或带--worktree的命令)。tmux new -s cc-pay,同理进支付那条线。- 列表用
tmux ls;接回用tmux attach -t cc-login。
离开时 Ctrl-b d 脱离,会话继续在常开的机器上跑。你合上笔记本出门,Mac mini 上的几条线还在各自的 worktree 里推进。
步骤四:合并前先 diff,只让一条线负责 push
并行的收益来自隔离;合回主线时要变谨慎:
- 在主工作树执行
git fetch,再分别git log/git diff main...feat/login-ui看改动范围。 - 约定:同一时刻只有你(或一条明确指定的会话)可以向远端 push。其他会话只在本地分支提交,避免两个人/两个 Agent 同时推同一分支。
- 先合冲突少的那条,再合另一条;冲突留给人看,不要让两个 Agent 同时「自动解决」同一文件。
- 验收通过后,再
git worktree remove清掉目录,分支按团队习惯保留或删除。
可以在每个 worktree 的进度文件(例如 PROGRESS.md)里写清「目标 / 已完成 / 下一步」,方便你从另一台设备 SSH 回来时快速对账。
步骤五:并行前先看额度,避免「窗口开满、周限额先见底」
多会话并不是免费加速:它们通常共用同一 Claude 账号的用量。开并行之前:
- 打开账号的 Usage,看清当前周期还剩多少。
- 先开真正独立的两条线;第三条等前两条告一段落再上。
- 短问短答尽量放在主会话,长重构、大迁移再进独立 worktree,减少无效并行。
机器侧也要留余量:Mac mini 同时跑几个 Claude Code、编译和测试,内存和磁盘都会上去。整机独享的好处是,你不用和别人抢同一台物理机的 CPU 与磁盘,可以把并行策略按自己的节奏调。
为什么要放在一台常开的新加坡整机上
worktree 和 tmux 会话都绑在文件系统上。笔记本合盖、公司办公机关机,并行会话会一起断;换机器还要把多棵工作树再同步一遍。放在一台常开的新加坡 Mac mini 上:
- 几条 Claude Code 会话可以过夜继续跑
- SSH 或 UU 远程连接从任何地方接回同一个现场
- 网络与时区稳定,排查「哪条线卡在哪」只盯一台机器
SgRent 提供的就是这样的环境:新加坡家庭宽带原生 IP 上的实体 Mac mini M6,整机独享(一人一台物理机),支持 SSH 和 UU 远程连接,FileVault 全盘加密,退租时抹机重装。新客户整机租用月付 ¥699 起,季付、半年付、年付有折扣;已有 Mac 的也可以托管,¥299/月起。实际延迟取决于你本地的网络线路,建议先用一个月把「双 worktree 并行」跑通,再决定要不要加第三条线。
小结
- 并行的硬规则:一个 Claude Code 会话一个目录,不要共用主 checkout
- 优先用
claude --worktree 名称;需要固定路径时再用git worktree add - tmux 会话名与任务名对齐,方便远程接回
- 合并前人工 diff,同一时刻只允许一条线 push
- 开并行前先看 Usage;机器用常开的新加坡整机托管会话
有问题可以在 Telegram 联系 @singatao,或直接看 价格与付款周期。
前往 panel.zumac.ai 订购 → · 查看方案与费用 · 帮助中心
