文章目录
- [一、为什么需要 Git Worktree?(真实开发场景)](#一、为什么需要 Git Worktree?(真实开发场景))
- [二、Git Worktree 核心命令大全(全版本通用)](#二、Git Worktree 核心命令大全(全版本通用))
-
- [1. 查看所有工作树:git worktree list(适配 Git 2.2.0+)](#1. 查看所有工作树:git worktree list(适配 Git 2.2.0+))
- [2. 创建工作树:git worktree add(核心命令,适配 Git 2.2.0+)](#2. 创建工作树:git worktree add(核心命令,适配 Git 2.2.0+))
- [3. 删除工作树:git worktree remove(适配 Git 2.17.0+)](#3. 删除工作树:git worktree remove(适配 Git 2.17.0+))
- [4. 清理无效缓存:git worktree prune(适配 Git 2.2.0+)](#4. 清理无效缓存:git worktree prune(适配 Git 2.2.0+))
- 三、核心使用注意事项
一、为什么需要 Git Worktree?(真实开发场景)
日常 Git 开发中,我们经常遇到一个痛点:单工作目录只能同时检出一个分支。
常规开发场景的弊端:
-
正在 feature 分支开发新功能,线上突然出现 bug 需要紧急修复,必须
stash暂存代码、切换 hotfix 分支,修复完再切回、恢复代码,流程繁琐且容易出错; -
需要同时查看、对比多个分支的代码,反复切换分支效率极低;
-
新分支开发未完成,代码不想提交,无法临时切换其他分支。
Git Worktree(多工作树) 就是为解决该问题而生:一个 Git 仓库,挂载多个独立工作目录,每个目录绑定专属分支,多分支并行开发,无需切换分支、无需暂存代码。
核心优势:多分支独立隔离、操作简洁、不污染主仓库。命令存在 Git 版本门槛,并非全版本通用,下文将精准标注各命令适配版本及低版本兼容方案。
二、Git Worktree 核心命令大全(全版本通用)
各命令适配 Git 版本不同,以下为精准版本适配 + 可直接复制的实操示例,同时补充低版本兼容替代方案。
1. 查看所有工作树:git worktree list(适配 Git 2.2.0+)
命令作用
查看当前仓库所有已挂载的工作目录,同步展示每个工作树的文件路径、绑定分支、提交版本、工作状态 ,是日常排查工作树的基础命令。

语法格式
Plain
git worktree list
实操示例
Plain
# 查看当前所有挂载的工作树
git worktree list
输出结果说明
执行后会展示主仓库工作目录 + 所有自定义 worktree 目录,包含路径、对应分支、最新提交ID、工作区是否干净等信息。
2. 创建工作树:git worktree add(核心命令,适配 Git 2.2.0+)

命令作用
为指定分支创建独立的工作目录,实现多分支并行开发,彻底告别频繁切换分支的操作,是 worktree 最常用的核心命令。
标准语法
Plain
git worktree add [工作目录路径] [-b [新分支名]] [基准提交/分支]
参数详细释义
-
工作目录路径(必填) :新建工作文件夹的路径,必须与主项目同级,禁止嵌套在主仓库目录内,避免仓库冲突。
-
-b 新分支名(可选):新建分支参数。携带该参数时,会自动创建一个本地不存在的新分支;不携带该参数时,必须指定一个已存在的本地/远程分支。
-
基准提交/分支(可选,仅配合 -b 使用):指定新分支的创建基底(某个分支、某次 commit 版本),省略则默认基于当前仓库 HEAD(当前所在分支)创建新分支。
场景化实操示例
统一前置场景:主仓库目录为 proj-main,所有工作树与主仓库同级存放。
Plain
# 场景1:为【已存在的分支】创建独立工作目录
# 为现有 hotfix 分支生成 proj-hotfix 工作目录,直接关联已有分支
git worktree add ../proj-hotfix hotfix
# 场景2:基于当前分支【新建分支】并挂载工作目录
# 以当前所在分支为基底,新建 hotfix 分支,同时创建对应工作目录
git worktree add ../proj-hotfix -b hotfix
# 场景3:基于指定主干分支【新建分支】(线上bug修复常用)
# 以 main 主干分支为基底,新建 hotfix 修复分支,挂载独立工作目录
git worktree add ../proj-hotfix -b hotfix main
3. 删除工作树:git worktree remove(适配 Git 2.17.0+)

命令作用
安全删除已创建的工作树,自动清除 Git 仓库中的关联记录、缓存信息,2.17.0及以上版本官方推荐优先使用。低于2.17.0的低版本Git无该命令,不可使用此操作。
语法格式
Plain
git worktree remove [工作目录路径]
参数说明
工作目录路径(必填):需要删除的、已挂载的 worktree 文件夹路径。
实操示例
Plain
# 安全删除 proj-hotfix 工作树及所有关联记录
git worktree remove ../proj-hotfix
4. 清理无效缓存:git worktree prune(适配 Git 2.2.0+)
命令作用
清理无效的工作树缓存记录。仅用于:手动删除工作树文件夹后,Git 仓库残留的无效挂载信息,执行该命令可一键清空脏数据,修复工作树状态异常。
语法格式
Plain
git worktree prune
实操示例
Plain
# 清理所有手动删除残留的无效 worktree 缓存
git worktree prune
三、核心使用注意事项
-
所有 worktree 目录共享同一个 Git 仓库的版本数据,代码提交、推送均互通,互不冲突;
-
一个分支只能绑定一个工作树,重复绑定会报错;
-
版本适配规则:Git 2.2.0+ 支持 add / list / prune 基础命令;Git 2.17.0+ 才支持 remove 快捷删除命令;
-
低版本兼容方案(Git 2.2.0 ~ 2.16.x):无 remove 命令,需手动删除工作树文件夹,再执行
git worktree prune清理无效缓存; -
高版本推荐操作:优先使用
git worktree remove命令删除工作树,避免手动删目录残留脏数据; -
工作树目录必须与主仓库同级,不可嵌套在主仓库目录内部,否则创建失败。