git worktree同一个仓库多个分支并行开发和管理

介绍

Git Worktree 是 Git 提供的一个功能,允许你在同一个仓库中同时工作在多个工作目录中,每个目录都有自己的工作树和索引。这对于同时处理多个分支或版本非常有用。

常用命令

命令 解释
git worktree --help 查看命令帮助
`git worktree list [-v --porcelain [-z]]`
git worktree remove [-f] <worktree> 删除指定的工作树
git worktree prune [-n] [-v] [--expire <expire>] 清理工作树的信息
`git worktree add [-f] [--detach] [--checkout] [--lock [--reason ]] [--orphan] [(-b -B) ] []`

重要命令讲解

git worktree add

应用场景

path 不能带有特殊字符,规则同本地创建文件夹一致。如路径不能包含"/",可以用如"-"来替代

1. 本地创建新分支

假设有一个vite-project的项目,本地创建新分支"feature/2025/update":

(注意:这里是创建新分支,不要与远程分支名一样!)

bash 复制代码
git worktree add ../feature-20250112-update -b feature/20250112/update

../feature-20250112-update:代表在vite-project同级下创建名字叫feature-20250112-update的文件夹,通常为了辨识度,名字会和分支名雷同;

-b 后面跟的就是实际要创建的新分支名称;

此时通过"git worktree list"查看工作树信息,已经列出了刚创建好的工作树目录,同时"git branch"也能够查看到新分支"feature/20250112/update";

2. 拉取远程分支

假设本地没有"feature/2025/update"分支,准备拉取远程分支"feature/2025/update":

bash 复制代码
git worktree add ../feature-20250112-update feature/20250112/update

可以注意到去掉了-b,并且拉取的分支名称要和远程分支名称保持一致,不需要写"origin",直接写分支本名即可,git会自动识别匹配;

创建后可以在信息中看出,明确指明了 set up to track 'xxx' 的是追踪的哪个远程分支;"git worktree list" 可以看到已经创建成功了,同样"git branch" 能够看到本地有了同名分支;

【注意】 如果远程分支名称写错了,会有错误提示;如果明确是要创建新分支,记得在新分支前加上-b;

git worktree remove

【操作流程】

  1. "git worktree list" 查看已有的工作树
  2. "git worktree remove " 删除指定分支
  3. 如果在文件夹中手动删除了工作树,通过 "git worktree prune" 清理工作树信息
  4. 删除工作树后,"git branch" 查看本地分支列表,"git branch -D" 删除与工作树同名的分支

VSCode 推荐插件

git worktree可视化插件,评测了几个类似的插件,最终选了这个;

有了这个插件就可以简化命令操作,切换工作树也很方便,可以试试~

相关推荐
゛凌乱的记忆づ7 小时前
好用的md文件编辑器——TyporaS与Typora
笔记·git·typora·markdown
এ慕ོ冬℘゜10 小时前
Git 基础规范:小步提交、提交信息规范与常用命令
git·svn
忘了ʷºᵇₐ12 小时前
Git学习笔记
笔记·git·学习
BIBI20491 天前
换 Git 托管平台怎么做?基于 TortoiseGit 的跨平台迁移教程
windows·git·tortoisegit·问题解决·版本控制·最佳实践
echome8881 天前
Git 日常救急:撤销提交、找回误删文件和解决冲突
git·版本控制
赵民勇2 天前
Git命令详解
git
不老刘2 天前
Antigravity 的 New Worktree 模式:给 AI 代理一个安全的“平行工位”
人工智能·git·ai编程·antigravity
光谱SpectrAI2 天前
Windows 也中招:Git Bash 和 Node 仍信任泄露的 eMudhra 证书
git
YIN_尹2 天前
【git原理与使用】git初识与安装
大数据·git·elasticsearch
Leo_Mr3 天前
Vue3 项目配置 Git 提交规范(企业通用方案:husky + commitlint + cz-git + lint-staged)
git