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

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

先容

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 <string>]] [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>]新增工作树 紧张命令解说

git worktree add

应用场景

   [path] 不能带有特别字符,规则同本地创建文件夹同等。如路径不能包含“/”,可以用如"-"来替换
  1. 本地创建新分支

假设有一个vite-project的项目,本地创建新分支"feature/2025/update":
(注意:这里是创建新分支,不要与远程分支名一样!)
  1. 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":
  1. 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

【操作流程】

  • “git worktree list” 查看已有的工作树
  • “git worktree remove ” 删除指定分支
  • 如果在文件夹中手动删除了工作树,通过 “git worktree prune” 清算工作树信息
  • 删除工作树后,“git branch” 查看本地分支列表,“git branch -D” 删除与工作树同名的分支
VSCode 推荐插件

git worktree可视化插件,评测了几个雷同的插件,终极选了这个;
有了这个插件就可以简化命令操作,切换工作树也很方便,可以试试~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表