1、首先了解下 git workflow 流程在深入 worktree 之前我们先回顾 Git 工作流中最基础的几个区域暂存区Staging Area / Index通过git add把修改标记为“准备提交”但此时还没有生成永久快照。临时保存区Stash通过git stash可以把写到一半的半成品临时藏起来让工作目录回到干净状态。本地仓库Local repository通过git commit将暂存区的内容生成一个永久快照正式存入本地仓库。这三个区域构成了日常开发中最常用的工作流骨架。多数情况下我们都在同一个项目目录里通过git checkout在不同分支间切换同时靠 stash 来应对中断。但一旦遇到需要“同时维护两个分支”的场景传统的 stash checkout 模式就会暴露出频繁的上下文切换和心智负担。2、一个场景搞清楚 worktree 的作用假设你正在main分支上开发新功能当前项目目录结构如下ticket-system/ ├── src/ ├── pom.xml └── .git/此时你正在修改OrderService.java代码写到一半还不能提交。突然线上登录接口挂了需要在hotfix分支紧急修复。领导让你立刻停下新功能先去修 bug。方案一传统方式stash checkout# 手头代码写了一半不能 commit先暂存gitstash# 切换到 hotfix 分支gitcheckout hotfix# 修改 LoginService.java 修 bug# ...gitadd.gitcommit-mfix login bug# 切回 main 分支gitcheckout main# 把刚才写到一半的代码恢复出来gitstash pop整个过程需要暂存、切分支、修复、再切回来再恢复。一旦 stash 多起来或者忘记 pop很容易造成混乱。方案二用 worktree不 stash不切分支# main 分支的代码原地保留不暂存也不切换# 在 ticket-system 目录外面新建一个 hotfix 工作树检出 hotfix 分支gitworktreeadd../hotfix hotfix执行后磁盘上会出现两个独立的工作目录共享同一个.git仓库ticket-system/→ 仍然停留在main分支你的OrderService.java草稿原封不动hotfix/→ 已检出hotfix分支专门用来修登录 bug接下来你可以继续在ticket-system/里写新功能完全不受影响同时在新开的 IDE 窗口中打开hotfix/文件夹修改LoginService.javacd../hotfix# 修改代码 ...gitadd.gitcommit-mfix login bug修复完成后切回原项目目录继续开发maincd../ticket-system# 继续写 OrderService.java无需任何 stash/pop 操作最关键的认知转变以前是一个目录ticket-system/ 一个.git只能通过 checkout 在分支之间跳来跳去。现在则是多个目录如ticket-system/、hotfix/、feature/共享同一个.git仓库每个目录都像一个独立的工作区同时存在互不干扰。3、关于 worktree 的分支占用规则要点说明分支占用规则一个分支比如main默认只能被一个 worktree 占用。如果你尝试让两个 worktree 同时检出同一个分支Git 会直接报错。worktree 的真正意义它的设计目标是实现“多个分支并行开发”比如main、hotfix、feature各占一个目录而不是“把同一个分支复制成多个工作目录”。因此worktree 解决的并不是同一个分支的多目录副本问题而是让不同分支的工作可以同时展开从而彻底消除因为分支切换而产生的等待与中断。4、worktree 在 AI Agent 时代的应用理解了上述能力后把视线从单个开发者移到 AI Agent就会发现一个更契合的使用场景。在 AI 编程 Agent 逐渐普及的今天多个 Agent 可能在同一仓库上协同开发不同任务。这时项目目录不再只是你一个人用而可以这样划分project-main/ → Agent A project-hotfix/ → Agent B project-refactor/ → Agent C project-test/ → Agent D例如Agent A → 开发支付功能Agent B → 修复线上 bugAgent C → 重构 OrderServiceAgent D → 写测试用例这几个 Agent 可以在各自的工作树里同时进行开发既不互相阻塞也不需要 stash 或来回切换分支。它们共享同一个底层仓库但磁盘上的工作区完全隔离。git worktree原本是为了让人类开发者减少上下文切换而设计的。到了 AI Agent 时代它天然就成了多 Agent 并行编码的基础设施——每一个 Agent 占据一个独立的工作树在各自分支上安心完成自己的任务彼此隔离却又基于同一份版本历史协作。