惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
Y
Y Combinator Blog
博客园_首页
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
B
Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
WordPress大学
WordPress大学
L
LangChain Blog
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Help Net Security

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
为 AI 打开多重宇宙:Git worktree 的真正价值 - 少数派
2025-12-28 · via 少数派

Cursor 推出的「并行代理」可以让我们同时执行多个 AI 任务。想象一下,我们手下有一个开发小组,每个 Agent 就是一个组员,他们共同推进一个项目的多个功能实现,以及 Bug 修复。

那么,他们是如何像专业的软件工程师一样,通过熟练的操作 Git 的 check out,merge,commit,并且能够尽量避免代码合并时的冲突的呢?

今天就来介绍一下驱动 AI 「并行代理」背后的基础技术:Git worktree。

Git worktree 是什么

Git worktree 是 Git 提供的一种机制,允许你在同一个仓库历史(同一个 .git)下,同时拥有多个独立的工作目录,每个目录可以检出不同的分支或提交

用简单的一句话定义:

不用切分支、不用 stash,就能在不同文件夹里同时干不同分支的活。

Git worktree 的意义

想象一下传统的工作流程,当我们开发某个功能到一半的时候,需要去修复一个突发的高危 Bug,我们需要先将当前编辑完没提交的文件先暂存,然后新建和检出到 Bug 修复的分支;当 Bug 完成修复之后,我们又需要回到之前的功能分支,然后取出暂存的文件,继续功能开发。

整个流程非常的繁琐,需要 8 - 10 条命令才能完成,对于开发者也是一笔不小的心智负担,切换任务上下文会消耗掉很多宝贵的专注力。

在这种情况下,Git worktree 就非常的有意义了,它可以:

直接通过git worktree add <path> <branch>创建并检出指定分支到新的文件夹,无需处理当前还没提交的文件,就像开辟了一个平行宇宙一样,直接开始做其他的功能或者修复。更妙的是,我们可以同时创建多个 worktree,如同漫威的多重宇宙一样,并行的推进多个项目分支。

Git worktree 为什么突然变得重要了

作为一个熟练使用 Git 的老程序员,老实说前些年其实很少用到 Git worktree,更多的还是使用传统的 stash / unstash 那一套,那么,为什么 Git worktree 突然变得重要起来了呢?

答案就是 AI Coding 及其带来的生产关系变革。

在「以人为本」的传统软件开发领域,我们通常只能代表我自己一个人,受限于人类的能力界限,人类工程师并不擅长同时并行的推进多个功能分支的开发,人类的专注力和多任务处理能力相比 AI 来说还是太弱了。

所以在工作中,我们更多的还是「单线」处理任务,只需要不停的在各个分支上进行切换就可以了。

然后,AI Coding 就来了。

Git worktree 对 AI 编程的加成

大家似乎都很乐于「压榨」AI 这个不眠不休的员工:从早期的「让 Codex 通宵跑任务」,到如今几乎成为标配的「并行代理(Parallel Agents)」,我们一直在做的,其实只有一件事——不断逼近 AI 编程效率的上限。

而 Git worktree,正好在这里派上了用场。

人类很难同时推进多个分支,但 AI 可以,而且非常擅长。我们只需要为它搭建好足够清晰、互不干扰的工作空间,它就能并行完成多个功能开发和 bug 修复,同时把冲突和相互影响降到最低。

Git worktree 就是用来做这件事的,它允许你在同一个仓库中,同时检出多个分支,并把它们放在彼此完全隔离的工作目录里。

每一个 worktree,都是一块独立的「施工现场」:有自己的代码状态、自己的修改记录,不会互相覆盖,也不需要频繁 stash、切分支、再切回来。

当你把不同的任务明确分配到不同的 worktree——比如一个负责重构、一个修 bug、一个加新功能——AI 就可以在多个分支上同时推进,而不必担心上下文混乱或代码相互污染。你要做的,只是定义好边界和目标,其余的交给它持续产出即可。

在这个层面上,Git worktree 不再只是一个「高级 Git 技巧」,而是让 AI 编程真正进入并行时代的关键基础设施。

如何学习 Git worktree

我无意将本文变成一个 git 命令教程,所以大家可以查看这个很棒的教程,来具体学习 Git worktree 的命令使用方式。

或者,当我们在使用 Cursor 等编程工具的「并行代理」功能,同时开发多个功能的时候,我们就已经在使用 git worktree 了,因为它们的背后就是 AI 代理自己创建和管理 worktree。

其他注意事项

需要注意的是,worktree 创建出的「平行宇宙」是缺少一些初始化信息的。因为 worktree 实质是创建了一个新的文件夹路径,因此类似 .env环境配置文件,以及包管理工具下载的大量文件都是不会被带到「新宇宙」里的。我们在创建完 worktree 之后还需要手动复制 .env和执行 npm install等包安装操作。

对于 Cursor 等编程工具,我们可以通过配置 .cursor/worktrees.json文件,来告诉 Cursor 在每次创建 worktree 的时候做一些准备工作,从而避免手动的去复制 .env和执行包安装命令:

{
  "setup-worktree": [
    "pod install", // 执行 Cocoapods 安装
    "cp $root/.env" // 复制 .env 文件, $root 是你的项目根目录
  ]
}