文章目录一、开场当 AI 开始精神分裂二、传统分支切换一场永无止境的渣男行为2.1 你 stash 的样子像极了塞脏衣服2.2 当 AI 开始多人运动三、一句话看懂 worktreeGit 的影分身术3.1 官方定义 vs 人话翻译3.2 目录结构长啥样四、worktree 的三大核心优势为什么它比克隆三份仓库更香4.1 优势一再也不用 stash 来 stash 去了4.2 优势二同时跑多个版本互不干扰4.3 优势三AI 工具的完美隔离舱五、手把手实操从创建到清理比点外卖还简单5.1 先看看你开了几个平行宇宙5.2 创建新的 worktree三种姿势5.3 删除 worktree退房记得办手续六、AI 工具避坑指南为什么 Claude 改了代码没效果6.1 坑点AI 在隔壁装修你在主卧验收6.2 避坑技巧一简单修改直接关 worktree6.3 避坑技巧二复杂任务必须隔离6.4 避坑技巧三.env 文件不会自动跟过去6.5 避坑技巧四把 .claude/worktrees/ 加进 .gitignore七、总结人生苦短别在分支切换上浪费时间P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。一、开场当 AI 开始精神分裂朋友们最近我同时在 macOS 和 Windows 上用 Codex 和 Claude Desktop 写代码结果被一个叫 worktree 的东西搞到怀疑人生。事情是这样的我让 AI 改了一段代码它信誓旦旦说改好了我刷新页面——纹丝不动。再刷新——还是老样子。再刷新——浏览器都怀疑我在 DDOS 它。我当时就懵了心想是我瞎了还是 AI 在骗我还是这代码跟我玩量子纠缠观测了就坍缩后来一查好家伙原来是 worktree 在跟我搞地下情。AI 在隔壁房间worktree里改得热火朝天我在主卧主目录里刷新了一万次刷新了个寂寞。这感觉就像你请了个装修队在隔壁楼装修你天天回自己家检查验收然后骂装修队偷懒。装修队也很委屈啊——“大哥我在 302 干活你天天回 301 看啥呢”今天我就结合踩过的坑带你把 worktree 这个Git 界的影分身术彻底整明白。二、传统分支切换一场永无止境的渣男行为2.1 你 stash 的样子像极了塞脏衣服先回忆一下咱们平时的开发流程。你在 main 分支上吭哧吭哧写新功能代码写到一半产品经理突然冲进来说“线上崩了用户正在微博上骂我们”你怎么办git stash把写到一半的代码往床底下一塞切到 hotfix 分支修 bug。修完再切回 maingit stash pop从床底下把脏衣服掏出来继续穿。这操作在小项目里没问题但在 AI 编程时代这简直就是一场灾难。2.2 当 AI 开始多人运动现在咱们用 AI 写代码那阵仗跟以前完全不一样了你想让 Claude 重构旧模块同时让 Codex 开发新功能你想让一个主 Agent 带着三个子 Agent 并行跑任务你甚至想让 AI 一边写代码一边写单元测试一边写文档如果全挤在一个目录里切来切去那场面就像五个厨师挤在一个厨房里A 在切菜B 在炒菜C 在洗碗D 在拖地E 在拆灶台。最后端上来一盘代码大乱炖里面既有 bug 又有 feature还有半拉子重构。更惨的是AI 的上下文会互相污染。你在 A 会话里聊的是支付模块切到 B 会话里 AI 还在惦记着支付模块token 就这么白白浪费了。这感觉就像你跟女朋友聊前任聊完发现现任也在旁听—— token 烧得比你的感情还快。所以 worktree 就是为了终结这场代码版换乘恋爱而生的。三、一句话看懂 worktreeGit 的影分身术3.1 官方定义 vs 人话翻译官方说法worktree 允许一个仓库关联多个工作目录。人话翻译同一个 Git 仓库开出多个平行宇宙每个宇宙里干不同的活。你可以把同一个仓库的不同分支分别放到不同的文件夹里。它们看起来是三个独立的项目但底层共用同一个 Git 数据库——就像三胞胎共用一个大脑但各自有独立的人格。3.2 目录结构长啥样假设你的主项目叫 my-project用了 worktree 之后my-project主宇宙main 分支稳如老狗my-project/login平行宇宙 Afeature-login 分支搞登录my-project/hotfix平行宇宙 Bhotfix 分支救火这感觉就像你买了三套房装修风格各不相同但房产证都是你的名字。更妙的是这三套房共用同一个水电表Git 对象数据库省钱四、worktree 的三大核心优势为什么它比克隆三份仓库更香4.1 优势一再也不用 stash 来 stash 去了以前切分支git stash → git checkout → 干活 → git checkout → git stash pop。现在切分支cd …/另一个文件夹。这感觉就像以前你约会要换衣服现在你有三个家每个家里住一个对象——啊不是每个文件夹里跑一个分支。效率直接拉满再也不用把脏代码塞床底下了。4.2 优势二同时跑多个版本互不干扰你可以在主目录跑 npm run dev 调试主分支在 worktree 里跑另一个端口测试新功能。这画面就像你在家看电视隔壁 worktree 里 AI 在蹦迪。你们共用一面墙Git 仓库但互不打扰。唯一的区别是如果 AI 在隔壁把墙拆了改坏了代码你家主目录还是完整的。4.3 优势三AI 工具的完美隔离舱这是最关键的一点像 Claude Code 这类工具利用 worktree 可以实现完美的任务隔离每个 AI 会话独占一个 worktree就像每个实习生都有独立工位AI 在 worktree 里把代码改得稀烂直接 rm -rf 删掉主目录毫发无损改好了再合并回来安全又高效这感觉就像你请了个试吃员AI在隔壁厨房试菜试吃员把盐当糖放了你直接把隔壁厨房炸了删除 worktree自家厨房主目录的满汉全席安然无恙。五、手把手实操从创建到清理比点外卖还简单别被概念吓到实际操作比你女朋友的情绪还简单。5.1 先看看你开了几个平行宇宙git worktree list这命令会列出所有工作树。输出大概长这样/path/to/my-project abcd1234 [main] /path/to/my-project-login efgh5678 [feature/login]就像查房产证看看你名下到底有几套房。5.2 创建新的 worktree三种姿势姿势一基于已有分支创建最常用git worktree add …/my-project-login feature/login这会在上级目录创建 my-project-login 文件夹并检出 feature/login 分支。翻译成人话你给 feature/login 分支买了一套新房拎包入住。姿势二创建全新分支一步到位git worktree add -b feature/payments …/payments main基于 main 分支新建 feature/payments 分支并在 …/payments 目录检出。翻译成人话你不仅买了新房还顺手给房子起了个新名字新分支。姿势三创建临时实验目录搞事情专用git worktree add -d …/debug-dir这会创建一个分离 HEAD的工作树适合临时测试。翻译成人话你租了个民宿想在里面搞点实验比如试试把代码全删了会不会编译通过搞完就跑不留名。5.3 删除 worktree退房记得办手续用完之后一定要清理不然 Git 会以为你名下还有一套房以后查房产证的时候看着闹心。git worktree remove …/my-project-login如果你已经手动把文件夹删了暴力退房Git 那边还有记录用这条命令销户git worktree prune翻译成人话你把房子炸了但房管局还有备案这条命令就是去房管局说一声那房子真没了别收我房产税了。六、AI 工具避坑指南为什么 Claude 改了代码没效果6.1 坑点AI 在隔壁装修你在主卧验收回到开头那个灵魂问题为什么在 Claude Desktop 里改代码刷新页面没效果因为 Claude Code 桌面版默认会为每个新会话自动创建一个 worktree而且它通常藏在 .claude/worktrees/ 文件夹里。这感觉就像你请了个装修队他们默认在隔壁 302 施工。你天天回自己家主目录刷新页面当然看不到变化。你还得专门跑到 302 去看或者把装修成果搬回 301。6.2 避坑技巧一简单修改直接关 worktree如果是改个变量名、调个样式这种小事直接让 AI 在主目录干活。别整那些花里胡哨的就像去楼下买瓶酱油没必要开跑车。6.3 避坑技巧二复杂任务必须隔离如果是重构、大改、或者让多个 AI 并行工作一定要开 worktree。一个任务一个目录互不打架。这感觉就像你请了两个厨师一个做川菜一个做粤菜必须分厨房不然最后端上来的是麻辣白切鸡。6.4 避坑技巧三.env 文件不会自动跟过去worktree 是全新的检出.env 这种被 .gitignore 忽略的文件不会自动复制过去。这感觉就像你搬家了但钥匙还在旧房子里。你可以在项目根目录建一个 .worktreeinclude 文件告诉 Claude 哪些配置要自动复制过去。6.5 避坑技巧四把 .claude/worktrees/ 加进 .gitignore不然你的主仓库里会多出一堆未跟踪文件看着跟牛皮癣一样。加进 .gitignore 之后Git 就假装看不见它们眼不见心不烦。七、总结人生苦短别在分支切换上浪费时间简单项目直接在主目录改别给自己加戏。就像去便利店走路去就行别叫直升机。复杂项目/AI 并行一定要用 worktree 做隔离。一个任务一个目录各干各的互不打架。核心禁忌同一个分支不能同时被两个 worktree 使用Git 会拒绝创建。这很好理解——你不能同时出现在两个平行宇宙里除非你是闪电侠。搞懂了 worktree你不仅能避免改了代码不生效这种低级错误还能在 AI 编程时代更高效地调度多个智能体并行工作。下次再遇到 AI 说改好了但页面没变化别急着骂 AI 骗人。先检查一下你是不是又在主卧刷新而 AI 在隔壁 302 干得热火朝天赶紧在你的下一个项目里试试吧如果还是搞不定欢迎来评论区吐槽咱们一起骂 Git 的设计者——当然是在各自的 worktree 里骂互不干扰。P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。
彻底搞懂 Git Worktree!AI 编程必备的代码隔离神器
文章目录一、开场当 AI 开始精神分裂二、传统分支切换一场永无止境的渣男行为2.1 你 stash 的样子像极了塞脏衣服2.2 当 AI 开始多人运动三、一句话看懂 worktreeGit 的影分身术3.1 官方定义 vs 人话翻译3.2 目录结构长啥样四、worktree 的三大核心优势为什么它比克隆三份仓库更香4.1 优势一再也不用 stash 来 stash 去了4.2 优势二同时跑多个版本互不干扰4.3 优势三AI 工具的完美隔离舱五、手把手实操从创建到清理比点外卖还简单5.1 先看看你开了几个平行宇宙5.2 创建新的 worktree三种姿势5.3 删除 worktree退房记得办手续六、AI 工具避坑指南为什么 Claude 改了代码没效果6.1 坑点AI 在隔壁装修你在主卧验收6.2 避坑技巧一简单修改直接关 worktree6.3 避坑技巧二复杂任务必须隔离6.4 避坑技巧三.env 文件不会自动跟过去6.5 避坑技巧四把 .claude/worktrees/ 加进 .gitignore七、总结人生苦短别在分支切换上浪费时间P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。一、开场当 AI 开始精神分裂朋友们最近我同时在 macOS 和 Windows 上用 Codex 和 Claude Desktop 写代码结果被一个叫 worktree 的东西搞到怀疑人生。事情是这样的我让 AI 改了一段代码它信誓旦旦说改好了我刷新页面——纹丝不动。再刷新——还是老样子。再刷新——浏览器都怀疑我在 DDOS 它。我当时就懵了心想是我瞎了还是 AI 在骗我还是这代码跟我玩量子纠缠观测了就坍缩后来一查好家伙原来是 worktree 在跟我搞地下情。AI 在隔壁房间worktree里改得热火朝天我在主卧主目录里刷新了一万次刷新了个寂寞。这感觉就像你请了个装修队在隔壁楼装修你天天回自己家检查验收然后骂装修队偷懒。装修队也很委屈啊——“大哥我在 302 干活你天天回 301 看啥呢”今天我就结合踩过的坑带你把 worktree 这个Git 界的影分身术彻底整明白。二、传统分支切换一场永无止境的渣男行为2.1 你 stash 的样子像极了塞脏衣服先回忆一下咱们平时的开发流程。你在 main 分支上吭哧吭哧写新功能代码写到一半产品经理突然冲进来说“线上崩了用户正在微博上骂我们”你怎么办git stash把写到一半的代码往床底下一塞切到 hotfix 分支修 bug。修完再切回 maingit stash pop从床底下把脏衣服掏出来继续穿。这操作在小项目里没问题但在 AI 编程时代这简直就是一场灾难。2.2 当 AI 开始多人运动现在咱们用 AI 写代码那阵仗跟以前完全不一样了你想让 Claude 重构旧模块同时让 Codex 开发新功能你想让一个主 Agent 带着三个子 Agent 并行跑任务你甚至想让 AI 一边写代码一边写单元测试一边写文档如果全挤在一个目录里切来切去那场面就像五个厨师挤在一个厨房里A 在切菜B 在炒菜C 在洗碗D 在拖地E 在拆灶台。最后端上来一盘代码大乱炖里面既有 bug 又有 feature还有半拉子重构。更惨的是AI 的上下文会互相污染。你在 A 会话里聊的是支付模块切到 B 会话里 AI 还在惦记着支付模块token 就这么白白浪费了。这感觉就像你跟女朋友聊前任聊完发现现任也在旁听—— token 烧得比你的感情还快。所以 worktree 就是为了终结这场代码版换乘恋爱而生的。三、一句话看懂 worktreeGit 的影分身术3.1 官方定义 vs 人话翻译官方说法worktree 允许一个仓库关联多个工作目录。人话翻译同一个 Git 仓库开出多个平行宇宙每个宇宙里干不同的活。你可以把同一个仓库的不同分支分别放到不同的文件夹里。它们看起来是三个独立的项目但底层共用同一个 Git 数据库——就像三胞胎共用一个大脑但各自有独立的人格。3.2 目录结构长啥样假设你的主项目叫 my-project用了 worktree 之后my-project主宇宙main 分支稳如老狗my-project/login平行宇宙 Afeature-login 分支搞登录my-project/hotfix平行宇宙 Bhotfix 分支救火这感觉就像你买了三套房装修风格各不相同但房产证都是你的名字。更妙的是这三套房共用同一个水电表Git 对象数据库省钱四、worktree 的三大核心优势为什么它比克隆三份仓库更香4.1 优势一再也不用 stash 来 stash 去了以前切分支git stash → git checkout → 干活 → git checkout → git stash pop。现在切分支cd …/另一个文件夹。这感觉就像以前你约会要换衣服现在你有三个家每个家里住一个对象——啊不是每个文件夹里跑一个分支。效率直接拉满再也不用把脏代码塞床底下了。4.2 优势二同时跑多个版本互不干扰你可以在主目录跑 npm run dev 调试主分支在 worktree 里跑另一个端口测试新功能。这画面就像你在家看电视隔壁 worktree 里 AI 在蹦迪。你们共用一面墙Git 仓库但互不打扰。唯一的区别是如果 AI 在隔壁把墙拆了改坏了代码你家主目录还是完整的。4.3 优势三AI 工具的完美隔离舱这是最关键的一点像 Claude Code 这类工具利用 worktree 可以实现完美的任务隔离每个 AI 会话独占一个 worktree就像每个实习生都有独立工位AI 在 worktree 里把代码改得稀烂直接 rm -rf 删掉主目录毫发无损改好了再合并回来安全又高效这感觉就像你请了个试吃员AI在隔壁厨房试菜试吃员把盐当糖放了你直接把隔壁厨房炸了删除 worktree自家厨房主目录的满汉全席安然无恙。五、手把手实操从创建到清理比点外卖还简单别被概念吓到实际操作比你女朋友的情绪还简单。5.1 先看看你开了几个平行宇宙git worktree list这命令会列出所有工作树。输出大概长这样/path/to/my-project abcd1234 [main] /path/to/my-project-login efgh5678 [feature/login]就像查房产证看看你名下到底有几套房。5.2 创建新的 worktree三种姿势姿势一基于已有分支创建最常用git worktree add …/my-project-login feature/login这会在上级目录创建 my-project-login 文件夹并检出 feature/login 分支。翻译成人话你给 feature/login 分支买了一套新房拎包入住。姿势二创建全新分支一步到位git worktree add -b feature/payments …/payments main基于 main 分支新建 feature/payments 分支并在 …/payments 目录检出。翻译成人话你不仅买了新房还顺手给房子起了个新名字新分支。姿势三创建临时实验目录搞事情专用git worktree add -d …/debug-dir这会创建一个分离 HEAD的工作树适合临时测试。翻译成人话你租了个民宿想在里面搞点实验比如试试把代码全删了会不会编译通过搞完就跑不留名。5.3 删除 worktree退房记得办手续用完之后一定要清理不然 Git 会以为你名下还有一套房以后查房产证的时候看着闹心。git worktree remove …/my-project-login如果你已经手动把文件夹删了暴力退房Git 那边还有记录用这条命令销户git worktree prune翻译成人话你把房子炸了但房管局还有备案这条命令就是去房管局说一声那房子真没了别收我房产税了。六、AI 工具避坑指南为什么 Claude 改了代码没效果6.1 坑点AI 在隔壁装修你在主卧验收回到开头那个灵魂问题为什么在 Claude Desktop 里改代码刷新页面没效果因为 Claude Code 桌面版默认会为每个新会话自动创建一个 worktree而且它通常藏在 .claude/worktrees/ 文件夹里。这感觉就像你请了个装修队他们默认在隔壁 302 施工。你天天回自己家主目录刷新页面当然看不到变化。你还得专门跑到 302 去看或者把装修成果搬回 301。6.2 避坑技巧一简单修改直接关 worktree如果是改个变量名、调个样式这种小事直接让 AI 在主目录干活。别整那些花里胡哨的就像去楼下买瓶酱油没必要开跑车。6.3 避坑技巧二复杂任务必须隔离如果是重构、大改、或者让多个 AI 并行工作一定要开 worktree。一个任务一个目录互不打架。这感觉就像你请了两个厨师一个做川菜一个做粤菜必须分厨房不然最后端上来的是麻辣白切鸡。6.4 避坑技巧三.env 文件不会自动跟过去worktree 是全新的检出.env 这种被 .gitignore 忽略的文件不会自动复制过去。这感觉就像你搬家了但钥匙还在旧房子里。你可以在项目根目录建一个 .worktreeinclude 文件告诉 Claude 哪些配置要自动复制过去。6.5 避坑技巧四把 .claude/worktrees/ 加进 .gitignore不然你的主仓库里会多出一堆未跟踪文件看着跟牛皮癣一样。加进 .gitignore 之后Git 就假装看不见它们眼不见心不烦。七、总结人生苦短别在分支切换上浪费时间简单项目直接在主目录改别给自己加戏。就像去便利店走路去就行别叫直升机。复杂项目/AI 并行一定要用 worktree 做隔离。一个任务一个目录各干各的互不打架。核心禁忌同一个分支不能同时被两个 worktree 使用Git 会拒绝创建。这很好理解——你不能同时出现在两个平行宇宙里除非你是闪电侠。搞懂了 worktree你不仅能避免改了代码不生效这种低级错误还能在 AI 编程时代更高效地调度多个智能体并行工作。下次再遇到 AI 说改好了但页面没变化别急着骂 AI 骗人。先检查一下你是不是又在主卧刷新而 AI 在隔壁 302 干得热火朝天赶紧在你的下一个项目里试试吧如果还是搞不定欢迎来评论区吐槽咱们一起骂 Git 的设计者——当然是在各自的 worktree 里骂互不干扰。P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。