Git Worktree

Git Worktree 是什么?

git worktree 是 Git 自带的多分支并行工作 工具,它能让你在同一个 Git 仓库下,同时检出多个不同分支,并且每个分支都有独立的工作目录(文件夹)。

简单说:不用频繁切换分支、不用克隆多个仓库,就能同时开发/调试多个分支


一、解决什么痛点?

平时用 Git 切换分支时,会遇到这些麻烦:

  1. 开发到一半,要紧急改另一个分支的 bug,必须先 commit/stash 暂存代码,很繁琐;
  2. 切换分支后,工作目录文件会被覆盖,容易误改、误删;
  3. 想同时对比两个分支的代码、运行两个版本的项目,只能重复克隆仓库,浪费空间。

git worktree 完美解决这些问题。


二、核心特点

  1. 共享同一个 .git 仓库:所有工作目录共用仓库的提交历史,不重复占用磁盘空间;
  2. 独立工作目录:每个分支一个文件夹,互不干扰;
  3. 无需频繁切换分支:直接打开对应文件夹就能开发;
  4. 原生 Git 命令:不用装插件,Git 2.5+ 版本自带。

三、常用命令(直接复制用)

1. 查看当前所有工作树

bash 复制代码
git worktree list

会显示:主目录 + 所有附加的工作树、对应分支、路径。

2. 创建新的工作树(指定分支)

bash 复制代码
# 格式:git worktree add <文件夹名> <分支名>
git worktree add bug-fix fix-branch-123

执行后:

  • 会生成 bug-fix/ 文件夹;
  • 自动检出 fix-branch-123 分支;
  • 直接进入这个文件夹就能开发,和主目录完全隔离。

3. 删除不需要的工作树

bash 复制代码
# 先删除文件夹,再清理 Git 记录
rm -rf bug-fix
git worktree prune

4. 快速创建新分支 + 新工作树

bash 复制代码
git worktree add new-feature -b new-branch-name

四、使用场景(最实用)

  1. 紧急修复 bug :主分支开发到一半,直接开一个 worktree 切到修复分支,改完提交,回到主分支继续写代码,不用 stash、不用切换
  2. 同时开发多个功能:一个目录写功能 A,一个目录写功能 B,互不干扰;
  3. 对比/测试两个版本:同时运行生产分支、开发分支,方便调试差异;
  4. ** reviewing 代码**:给同事的分支建一个独立目录,直接查看、运行代码。

五、和普通切换分支、多克隆仓库的区别

方式 优点 缺点
git checkout 切换分支 简单,适合临时切换 干扰当前工作,容易出错
克隆多个仓库 完全隔离 占用双倍空间,同步提交麻烦
git worktree 隔离、共享仓库、不占空间、高效 需记住命令(很简单)

总结

  1. git worktree = 同一个 Git 仓库,多个独立分支工作目录
  2. 核心价值:不切换分支、不重复克隆,同时并行处理多个分支
  3. 高频命令:add(创建)、list(查看)、prune(清理)。
相关推荐
Winlifes15 小时前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理2 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123452 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s2 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人3 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人3 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅3 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人3 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr3 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林3 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器