首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Boris 同时开 15 个 Claude Code 的秘密——Git Worktree 多开指南

Boris 同时开 15 个 Claude Code 的秘密——Git Worktree 多开指南

作者头像
埃兰德欧神
发布2026-01-22 10:24:35
发布2026-01-22 10:24:35
8690
举报
文章被收录于专栏:开源地带开源地带

上一篇发了《无招胜有招》后,私信最高频的问题是:“Boris 说他同时开十几个 Claude 干活,这怎么实现的?我试了一下,开多个终端窗口,结果几个 Claude 都在同一个项目文件夹里乱改代码,全冲突了啊!”

这确实是个好问题,传统方式同时跑多个 Claude 实例,会遇到这些坑:代码冲突、改动互相覆盖、回滚困难,某个 Claude 改崩了想回滚,结果把另一个 Claude 的正确改动也撤掉了

那 Boris 是怎么做到“同时开十几个 Claude 还井然有序”的?答案是 Git Worktree,这个功能藏在 Git 里好多年了,但很少有人用!直到 Vibe Coding 时代,它的价值才真正爆发:

让你在同一个仓库里同时运行多个“平行宇宙”,每个 Claude 在自己的宇宙里折腾,互不干扰

今天就来拆解一下这个被严重低估的 Git 原生功能

Worktree 是个什么东西

简单说,Worktree 让你在同一个代码仓库里,同时打开多个分支到不同文件夹。传统 git checkout 只能“变身”,而Worktree 让你“分身”

在 AI 辅助编程时代,你经常需要这样:让 AI 大胆尝试方案 A,同时你手写方案 B;紧急修 bug 时不想打断主线开发;同时跑多个实验,肉眼对比哪个效果好

五个命令就够了

代码语言:javascript
复制
# 查看现有的"分身"
git worktree list

# 创建新的工作区(最常用)
git worktree add ./worktrees/my-app-experiment feature/new-idea

# 边创建新分支边开工作区
git worktree add -b hotfix-urgent ./worktrees/my-app-hotfix

# 删除工作区
git worktree remove ./worktrees/my-app-experiment

# 清理已删除的工作区记录
git worktree prune

我现在的项目结构是这样的:

代码语言:javascript
复制
~/projects/my-saas/          # 主仓库,main 分支
~/projects/my-saas/worktrees/my-saas-ai/       # AI 实验区
~/projects/my-saas/worktrees/my-saas-hotfix/   # 紧急修复专用

三个文件夹,三个 VS Code 窗口,互不干扰。说到这,我突然想起上周遇到的一个场景

让 AI 放飞自我的实验场

你有没有遇到过这种情况:想让 AI 大胆重构一段代码,但又怕它改出幺蛾子。以前我总是小心翼翼,生怕 AI 把代码改崩,现在你可以这样做:

代码语言:javascript
复制
# 主仓库
~/projects/my-app/          # 稳定开发,代码靠谱

# 给 AI 开个实验场
git worktree add ./worktrees/my-app-ai experiment/ai-refactor

# 现在
# 左边屏幕:你在主仓库继续写代码
# 右边屏幕:让 Claude 在实验区大胆重构

操作很简单:主仓库继续开发核心功能,不动;打开第二个终端,进入 AI 实验区;跟 Claude 说:“帮我重构这段代码,尽管折腾”;AI 改得好就 git merge,改崩了就直接删文件夹

这就像给 AI 一个沙盒,让 Ta 随便玩,反正玩坏了也不会拆家。有了独立实验场,AI 可以放飞自我,大不了实验失败直接炸掉,主仓库一点不受影响

多个方案并行对比

有次我遇到个棘手的性能优化问题,不确定哪种方案最好,想让 AI 同时试三种方案:

代码语言:javascript
复制
# 主仓库
~/dev/my-app/

# 方案 A:优化数据库查询
git worktree add ./worktrees/my-app-solution-a exp/db-optimize

# 方案 B:加缓存
git worktree add ./worktrees/my-app-solution-b exp/add-cache

# 方案 C:改算法
git worktree add ./worktrees/my-app-solution-c exp/new-algorithm

每个 worktree 跑独立的开发服务器,端口 3000、3001、3002。浏览器开三个窗口,同时对比页面加载速度,最快的方案胜出,其他两个直接删除;这样就可以“并行实验”,大幅提升决策效率。

紧急任务不打断心流

正写代码突然要修 bug,Worktree 的解决方案也优雅到飞起:

代码语言:javascript
复制
# 你正在开发新功能
~/dev/app/  # feature/new-ui 分支

# 突然要修紧急 bug
git worktree add ../app-hotfix hotfix/critical-bug

cd ../app-hotfix
# 修 bug、提交、推送
git commit -m "fix: 修复崩溃问题"
git push

# 回到主仓库
cd ~/dev/app/
# 你的 npm run dev 还在跑,代码一点没动

以前切分支就像“灵魂出窍”,现在是“肉身分离”。主仓库的开发服务器不用重启,AI 对话上下文不会丢,心流完全不被打断

几个踩坑提醒

1. node_modules 要不要共享

每个 worktree 默认是独立依赖的,如果想共享(不推荐,容易冲突):

代码语言:javascript
复制
ln -s ~/projects/app/node_modules ~/projects/worktrees/app-ai/node_modules

更好的方案:用 pnpm,pnpm install 会自动共享依赖,省空间又快。我见过有人开了 5 个 worktree,每个都装一遍 node_modules,硬盘直接爆满

2. 别在多个地方改同一个文件

Worktrees 共享同一个 Git 数据库,如果在两个 worktree 同时改同一文件,会产生冲突。建议主仓库做主线开发,实验区做孤立实验,各管各的,井水不犯河水

3. 定期清理实验分支

别让实验分支堆成山,定期清理:

代码语言:javascript
复制
git worktree list  # 看看有哪些
git worktree remove ./worktrees/app-ai-old
git branch -d experiment/old-idea
git worktree prune  # 清理已删除的记录

分享下我的工作模式

代码语言:javascript
复制
主仓库(稳定开发,心流专注)
    ↓
worktrees
├─ ai-experiment:让 AI 大胆尝试
├─ backup-solution:备用方案验证
├─ hotfix:紧急修复通道
└─ code-review:审查别人代码专用
.gitignore
worktrees/
每个 worktree = 独立 VS Code 窗口 + 独立开发服务器
在多个"平行宇宙"里自由穿梭, .gitignore 添加忽略 worktrees 目录

worktree 本质上解决的是“上下文切换成本”的问题。以前切分支就像在不同角色间切换,每次切换都要“入戏”一段时间,现在有了 worktree,就像开了多个游戏账号,想玩哪个玩哪个

写在最后

在 AI 辅助编程时代,这个特性尤其有用:AI 需要“试错空间”,你需要“稳定输出”;你想“并行探索”,而不是“串行等待”;你希望“心流不断”,而不是“频繁中断”

如果代码仓库也能像《黑客帝国》里那样,同时运行多个模拟现实,你会怎么用它?我的答案是:让 AI 在模拟世界里疯狂实验,我在真实世界里稳健前进。毕竟,最好的创新往往来自“有保护的冒险”

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源地带 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Worktree 是个什么东西
  • 五个命令就够了
  • 让 AI 放飞自我的实验场
  • 多个方案并行对比
  • 紧急任务不打断心流
  • 几个踩坑提醒
    • 1. node_modules 要不要共享
    • 2. 别在多个地方改同一个文件
    • 3. 定期清理实验分支
  • 分享下我的工作模式
  • 写在最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档