作为程序员,基本上每天都在用 Git,但这两天发现一个扎心的现实:Git 有一个 2015 年发布的功能至今已经有 10 年多了,随着 AI 编程的爆火才重新崭露头角。可以说真的是由 AI 编程带火的 Git 功能,我也是这两天使用 Claude Code Worktree 才开始了解和真正使用的。
不过我发现 Claude Code Worktree 目前使用上还有一些限制,需要 Git 原生 Worktree 配合。今天重新认识一下 Git Worktree。
Git Worktree 简介
Git Worktree 是一项发布于 2015 年的高效功能,它允许开发者在同一个仓库中同时开启多个独立的物理目录(工作区),从而彻底告终了在不同分支间切换时频繁 stash 或提交未完成代码的烦恼。
特别是在 Claude Code 等 AI 工具的驱动下,它让 AI 代理能够在隔离的"分身环境"中自主运行长时任务或修复 Bug,而开发者则可以在主目录中同步进行其他核心工作,实现了真正的多线程并行开发模式。

为什么之前没有关注过?
在过去的软件开发模式里,我们的工作方式都是单一项目、单一分支和单一任务,工作模式也是串行的:代码编写 → 提交 → 合并,整个过程完全不会涉及 Git Worktree 场景。
随着 AI 编程时代的到来,涌现出大量并行任务的需求场景。我们可以同时让 AI 写代码、重构、测试,Git Worktree 的重要性也随之体现。

为什么不会冲突?
当我们在尝试从一个分支签出多个 Worktree 时会报错。报错的原因是 Git Worktree 限制:一个分支只能被一个 worktree checkout。每个分支只有一个 Worktree,自然不会出现冲突问题。
Git Worktree 的工作流程

Git Worktree 目录结构
在 Git Worktree 中,可以简单地将项目文件目录分为 2 大类:.git 和 其他文件。

当我们创建 Git Worktree 时,会在 .git 下的 worktrees 目录添加新 Worktree 的"链接工作区"记录。

Worktree 会拷贝工作区目录,并且只会拷贝签出的 .git 和未被.gitignore 忽略的文件。
- .git:不是工作区 .git 的拷贝,而是 .git 的索引。因为有该索引文件,所以在 Worktree 中才可以正常执行 git 命令。也正是因为没有拷贝 .git,所以 Worktree 的创建过程很快。
- 未被.gitignore 忽略的文件:工作区中未被 .gitignore 记录的工作区文件。

基本使用
Worktree 命令列表
- add:创建新的 Worktree
- list:查看 Worktree 列表
- lock:锁定保护 Worktree
- unlock:解锁 Worktree
- move:移动 Worktree
- prune:清理失效的 Worktree
- remove:删除 Worktree
- repair:修复 Worktree

创建 Worktree
以 GitHub 项目为例,首先将项目克隆到本地:
git clone https://github.com/zhizinan1997/jimeng-free-api-all.git
Git Worktree 标准命令格式:
git worktree add -b <本地新分支名> <路径> [<起始点>]
使用下面命令创建 worktree,该命令默认会基于当前分支创建 feat/login 分支并创建一个名为 feat-login 的 worktree 存放到 .worktrees/feat-login:
# 默认使用当前分支
git worktree add -b feat/login .worktrees/feat-login
# 指定分支,HEAD 指针指向当前分支
git worktree add -b feat/login .worktrees/feat-login HEAD

查看 Worktree 列表
git worktree list

删除 Worktree
git worktree remove .worktrees/feat-login

实际应用场景
场景 1:AI 并行开发
让 AI 在独立的 Worktree 中修复 Bug 或开发新功能,你在主工作区继续其他工作,互不干扰。
场景 2:多任务并行
同时处理多个紧急任务,每个任务一个 Worktree,避免频繁切换分支和 stash。
场景 3:代码审查
在独立 Worktree 中审查代码,不影响主开发环境。

注意事项
- 单一分支锁定:同一个分支不能同时被多个 Worktree 签出
- 额外磁盘空间占用:每个 Worktree 都会占用一定的磁盘空间
- 增加管理成本:需要管理多个 Worktree 的生命周期

小结
Git Worktree 的核心价值在于:
- 真正的并行开发:多个工作区同时工作,互不干扰
- 消除环境切换成本:无需频繁 stash 或提交未完成代码
- AI 编程最佳搭档:让 AI 在隔离环境中自主运行长时任务
如果你还没用过 Git Worktree,强烈建议试试。尤其是在 AI 编程时代,它会成为你的效率神器。