Clipping 微信公众号

AI编程实践第7节:Git WorkTree机制实现分支并行开发

by 爱海贼的无处不在 原文 ↗
Created: 2026-04-06

公众号名称:无处不在的技术

作者名称:爱海贼的无处不在

发布时间:2026-04-06 16:54

持续内容输出,点击蓝字关注我吧

01

前言

来看一段AI大模型对它的介绍

大家在日常开发和工作的过程中,每天早晨打开电脑后,眼前有一大堆分支:主分支正在修复线上 Bug,特性分支正在开发新功能,测试分支还得跑回归验证。

有的小伙伴每次切分支,都像在打游戏切装备:

有的小伙伴要暂存未完成的任务,要忍受 IDE 重新索引的等待,还得担心文件被覆盖……

有的小伙伴每一次切分支都像在调度不同的机器人:

  • 先要收拾桌面(stash 未提交改动)

  • 再切换分支

  • 等 IDE 重新索引

  • 小心别把生成文件覆盖掉

效率低还容易出错,心里总像压着一块大石头。

是不是非常的痛苦,每天开发的过程中,切换分支自己非常难受。

经常情况如下:

情况1:

(1)、将本地修改文件通过 git add . && git commit 提交到当前分支,或者通过 git stash 暂存起来

(2)、分支切到 master,修复完问题后切回 feature

(3)、若之前是 commit 的可直接开发,若是 git stash 则 git stash pop 出来处理

**情况2:**clone 一份同样远程代码到本地,切换到 master 分支来解决错误。

那么如果有一个“小伙伴”能帮你把这些工作分开管理,每个任务独立运行,互不干扰,你是不是就轻松很多?

这个“小伙伴”,就是今天要分享的 Git WorkTree。它能让你的仓库拥有“分身术”,让不同分支各自拥有独立的工作空间,让研发的节奏更自由,也更适合现代协作开发和 AI 助力开发场景。

使用它,就像给你的仓库开了“分身术”,每个分支都有自己的小世界,例如:

  • A 分身专注修 Bug

  • B 分身专注新功能

  • C 分身专注测试

各自独立运行,不互相干扰,让研发的节奏自由而高效。

2026年的AI时代,多分支并行工作目前已经成为开发人员的主流,如果你在工作中还结合 AI 助手(如代码补全、自动化测试、智能代码审查),每个分身都有自己的 AI 助手在旁协作:

  • 特性分支的 AI 给你智能生成代码

  • Bug 修复分支的 AI 提供修复建议

  • 测试分支的 AI 帮你生成测试用例

你的研发宇宙,瞬间平行而高效。今天简单分享一下这个东西。

07高峰论坛会

02

正文

首先,需要明确这个东西的一个目标群体和场景的应用场景:

目标群体

  • 同时开发多个功能或修复多个 Bug 的研发人员

  • 在不同分支间频繁切换,或参与多人协作的开发团队

应用场景

  1. 并行开发

    主分支修 Bug,特性分支开发新功能,互不干扰

  2. 测试验证

    在独立工作树中测试分支代码,不污染主工作区

  3. 协作评审

    为不同 PR 创建独立工作树,隔离评审修改

而Git WorkTree 的出现,就像研发团队雇了几个分身小助手:一个仓库,多条平行工作路径,各自独立,又共享 Git 对象库,轻量又高效。小助手们互不干扰,高效完成任务。而这种操作方式的核心优势是多个工作树共享 .git 对象(commit、blob 等)、拉取/切换分支不重复下载对象、磁盘占用比多次 clone 低,实现了真正并行的工作环境,适合长时间占用。

AI时代,我们通常会借助AI编码工具实现研发,之前的方式为创建一个分支,然后开启一个对话进行工作,但是一个分支会阻塞当前自己的其他工作,那么如果可以使用这种玩法,那么就可以同时用多个 AI 助手在每个工作树进行并行工作,可以用相同的AI工具或者不同的AI工具开发,例如:

ClaudeCode工具开发特性分支:AI 提供代码生成、函数模板、重构建议

Codex工具处理Bug 修复分支:AI 自动分析异常日志,提供修复方案

OpenCode工具处理测试分支:AI 自动生成测试用例、覆盖率报告

在 WorkTree 的支持下,你的 AI 助手不再只是单线程工作,每个分支都能并行获得智能辅助。

Git WorkTree 操作分享非常的简单,首先我们找到一个当前自己开发的Git仓库,然后确定下你要同时开发或修复的分支,例如 bugfix/v1 或新建分支 feature/login。

然后执行类似如下的命令:

# 检出已有分支到新目录
git worktree add ./workspace/bugfix-v1 feature-1

这个命令就是创建了一个Git工作树。也可以创建新分支并关联工作树命令:

# 检出已有分支到新目录
git worktree add -b feature/login ./workspace/feature-login main

这个命令可以分为几个部分:

git worktree add部分:Git WorkTree 的核心命令,用于创建新的工作树(独立工作区),召唤一个新的分身实验室

**-b feature/login部分:**创建一个 新分支,名字叫 feature/login,并检出到工作树,给新分身取个名字,并告诉它要做的任务。

**./workspace/feature-login部分:**新工作树的路径,即新目录存放的位置,分身的实验室具体放在哪里”

**main部分:**新分支基于的 起始分支,也就是新分身从哪里出发,新分身从 main 分支出发,继承它的所有代码状态

执行这个命令后会发生几个动作:

  1. 创建新目录:

    在 ./workspace/feature-login 目录下生成一个独立工作区(工作树)。

  2. 新分支生成并检出

  • 新分支 feature/login 在 main 基础上创建

  • 工作树自动切换到这个新分支

  • 原来的主工作区不会受影响

  1. 共享 Git 对象库
  • 新工作树与主仓库共享 .git 对象(commit、blob 等)

  • 不会重复下载或克隆,磁盘占用低

  1. 实现并行开发
  • 你可以在新工作树里专注开发 feature/login

  • 主工作区可以继续修复 Bug 或跑测试

  • 不需要 stash、checkout 来回切换

这个分身小助手就是你开发新功能的“安全环境”,随时可以在这里写代码、测试、调试,而不会影响其他分身在做的事情。

比如在我的Mac笔记本上的代码仓库中,我执行了这个命令:

此时的父级目录如下所示,可以看到一个并行的同级目录:

这样我们就同时打开了2个开发分支目录,开始并行工作。

如果我们不指定 -b:如果目标分支已经存在,可以直接检出已有分支到新工作树

git worktree add ./workspace/bugfix-v1 main

路径注意:工作树目录必须不存在,Git 才能创建新目录

分支同步:新工作树基于 main 创建后,如果 main 继续更新,需要手动在新分支 pull。

也可以查看当前Git仓库中有哪些工作树:

git worktree list

删除工作树(完成开发后)

git worktree remove ./workspace/feature-login git worktree prune

每个工作树就像独立实验室,你在里面做任何实验,都不会影响其他实验室。

一般的开发心法与最佳实践如下:

  1. 合理规划工作树

    长期任务占用独立工作树,短期任务在主工作树操作

  2. 保持分支清晰

    工作树不要同时占用多个目标分支

  3. 注意磁盘空间

    每个工作树存储当前分支文件

  4. 分支同步

    主工作树修改公共分支后,其他工作树需手动拉取更新

结合 AI 助手:在每个工作树中开启 AI 辅助,提高编码和测试效率。

在软件研发人员的实际开发中,基于Git WorkTree的场景是比较多的:

1. 多分支对比场景:

  • 当你需要对比两个分支的实现方式或者调试结果时,每个分支各自占用一个工作树,不用切来切去。

  • 想象你召唤了两个分身同时盯着同一个问题,一个在 main 分支修复 Bug,一个在 feature 分支做新功能,两者互不干扰,还能快速比对结果。

2. 不同 AI 分身完成相同需求场景:

  • 给不同分支各自配一个 AI 助手,例如在同一个新功能需求下,让 ClaudeCode 在 feature/login 分支生成一套方案,GithubCopilot 在 feature/login-v2 分支生成另一套方案。

  • 你就能快速评估 AI 生成方案的优劣,比人工切分支效率高很多。

3. 线上问题紧急修复 + 新功能开发同时进行

  • 一边在 main 分支修复线上 Bug,一边在特性分支开发新功能,再开一个工作树跑回归测试。

  • 想象你有三个分身同时工作:一个忙着灭火,一个忙着建新功能,一个忙着跑测试,互不打架。

4. 多人协作代码评审场景:

  • 为不同 PR 创建独立工作树,评审者在自己的工作树里修改或测试 PR 内容,不污染主工作区。

  • 每个分身就像一个独立实验室,专门处理一个 PR,评审更安全高效。

5. 独立测试环境场景:

  • 工作树可以挂载不同配置或依赖版本,不同工作树运行不同版本环境。

  • 分身们各自带着自己的装备,环境完全隔离,不用担心“依赖污染”。

6. AI实验多策略验证场景:

一个算法需要尝试不同优化策略(例如缓存策略、算法参数、推荐模型调参),我们可以为每种优化策略创建独立工作树,每个分支让不同 AI 模型或助手尝试生成代码或调整参数。可以在同一仓库下快速评估多种算法方案,发现最佳策略,再合并到主分支。

03

总结

Git WorkTree 带来的不仅是技术便利,更是一种研发哲学:

  • 效率提升

    多任务并行,无需频繁切换分支

  • 隔离性

    修改互不干扰

  • 轻量管理

    共享 Git 对象库,磁盘占用低

未来,当每个工作树都配备 AI 助手,你的研发工作可以像拥有多个分身同时作战:

  • 每个分身专注自己的任务

  • 每个分身都有智能助手协作

  • 多任务并行,协作高效

Git WorkTree,不只是工具,它是研发团队里隐形的小伙伴,是每位开发者的“平行宇宙”。当每个 WorkTree 都配备 AI 助手,你的研发工作可以像有多名分身同时高效作战,每个分身都知道自己手头的任务,协作更流畅、效率更高。

喜欢本文的,可以关注、收藏、点赞、转发、分享到朋友圈哦。

本专题系列文章:

VibeCoding实践第1节:字节Trae实现简历与简历生成器

AI编程实践第2节:Spec规范驱动开发(SDD)1024游戏

AI编程实践第3节:Trae实现Web管理后台界面,效果出奇好

AI编程实践第4节:基于GPT5+Trae实现MCP服务市场

AI编程实践第5节:Trae梳理解构项目业务与代码流程

AI编程实践第6节:秒哒开发微信表情包生成应用

最近也看到有人问如何学习AI,这里分享几个资料如下:

1、通往AGI之路的知识库飞书云文档

https://waytoagi.feishu.cn/wiki/QPe5w5g7UisbEkkow8XcDmOpn8e

2、掘金的AI知识库的飞书云文档

https://agijuejin.feishu.cn/wiki/UvJPwhfkiitMzhkhEfycUnS9nAm?table=blk3RfZtR7Nh73tO

3、极客时间的AI知识库的飞书云文档

https://geek-agi.feishu.cn/wiki/B9rYwwg6xidZYJkbrlscxTQFnOc

4、LangGPT社区的飞书云文档(结构化提示词等等)

https://langgptai.feishu.cn/wiki/RXdbwRyASiShtDky381ciwFEnpe

5、一站式AI产品经理飞书知识库

https://v11enp9ok1h.feishu.cn/wiki/KiIvwdFOciiqqNkwKzTcmn88ndL

6、微软网站分享的AI指南说明知识

https://learn.microsoft.com/zh-cn/azure/databricks/generative-ai/guide/introduction-generative-ai-apps

7、赋范空间的飞书AI知识库:

https://kq4b3vgg5b.feishu.cn/wiki/ETqzwH4THiTY8kkGqAucYbSonPt

- END -

喜欢的可以加入我的免费知识星球:觉醒的新世界程序员,或者付费的知识星球:觉醒的AI技术经验,随时与我沟通,交流技术与想法。

喜欢的也可以关注我的公众号:​无处不在的技术​,与我一起学习成长、共同进步,在技术的道路上越走越远。

喜欢就点个 在看 呗 👇


cover_image

原创 爱海贼的无处不在 无处不在的技术

输入关键词开始搜索