首页 > 其他分享 >git worktree同一个仓库多个分支并行开发和管理

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

时间:2025-01-12 14:44:28浏览次数:1  
标签:git worktree -- 并行 feature update 分支

介绍

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":
(注意:这里是创建新分支,不要与远程分支名一样!)

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":

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可视化插件,评测了几个类似的插件,最终选了这个;
有了这个插件就可以简化命令操作,切换工作树也很方便,可以试试~

标签:git,worktree,--,并行,feature,update,分支
From: https://www.cnblogs.com/codemz/p/18666943

相关文章

  • 【工具箱】GitHub命令行访问配置
    文章目录配置SSH访问配置个人访问令牌(代替原密码)GitHubDesktop其它GitHub是编程社区广泛使用的产品,它的使用范围已经扩展到很多需要多版本控制的系统中了。本文介绍配置GitHub的本地访问的方法,以及图形化界面(GitHubDesktop)的下载方法。配置SSH访问ssh-keygen-......
  • [笔记] 使用 Jenkins 和 Nginx 实现前端项目的持续集成与部署 (CICD) : 从 GitLab 拉
    在现代软件开发中,持续集成与持续部署(CI/CD)已经成为提高开发效率、保证代码质量的重要手段。对于前端项目来说,如何快速、稳定地将代码从开发环境推送到生产环境,是一个关键问题。本文将详细介绍如何使用Jenkins和Nginx实现前端项目的CI/CD流程,确保每次代码提交都能自动......
  • 基于gitlab数据的还原研究
    通过oss权限获取部分不明数据1.1全部数据及格式分析1.1.1下载文件中的文件内容通过oss服务器获取了一些包含bundle、checksum、list、lsremote后缀文件。1、list文件内容2、lsremote文件内容3、bundle文件内容bundle中发现有gitbundle4、checksum文件内容checksum文......
  • 如何让npm script并行?
    在前端开发过程中,有时你可能希望并行运行多个npm脚本,例如同时启动开发服务器和监视文件更改。这可以通过使用npm的&操作符来实现。假设你有两个脚本在package.json中定义如下:"scripts":{"start":"nodeserver.js","watch":"nodemon--watchsrc-ejs,html,css--exec......
  • 初识 Git——《Pro Git book》
    WhyGit?1.本地版本控制系统Why:许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单,但是特别容易犯错。有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。为了解决这个问题,人们很久以......
  • git如何统计某人提交的所有代码文件名称呢?
    window下请打开gitbash窗口,因为linux命令有些需要用到查找项目所有成员提交的情况统计gitshortlog-s-n结果(base)liuhaihua@liuhaihuadeMacBook-Prospringcloud-demo%gitshortlog-s-n60liuhaihua3Harries查找某人提交信息gitlog--author="liuhaihua"......
  • GitLab CISO谈DevSecOps成功:主动监测与指标是关键
    原创MirkoZorz信息安全D1netGitLab的CISOJoshLemos探讨了从DevOps到DevSecOps的转变,指出构建系统复杂性和安全工具集成是企业面临的主要挑战,他建议简化构建系统,将安全检查直接融入流水线,并采取措施避免次优设计决策,同时,强调了以软件最小化为目标、在非阻塞模式下逐个项目......
  • 使用 GitHub Actions 构建 CosyVoice 项目的运行环境镜像并推送到阿里云容器镜像服务
    使用GitHubActions构建CosyVoice项目的运行环境镜像并推送到阿里云容器镜像服务和GitHubPackageRegistry概述本文介绍了如何使用GitHubActions构建CosyVoice项目的运行环境Docker镜像,并将其推送到阿里云容器镜像服务(ACR)和GitHubPackageRegistry。通过挂载本地......
  • git push命令
    gitpush常用命令1.拉取远程仓库最新数据使用gitfetchgitfetch作用:获取远程仓库的最新数据(包括分支、标签等),但不会修改本地工作目录。结果:仅更新远程分支(如origin/main)的状态,不会自动合并到本地分支。使用gitpullgitpull作用:从远程仓库拉取最新......
  • AI编程工具怎么选?GitHub Copilot、AI Assistant与Cursor,谁是你的最佳拍档?
    大家好,欢迎来到程序视点!我是小二哥。在大模型技术迅猛发展的今天,AI编程已经很普遍了!从AI编程插件工具,到AI编程IDE,已经有很多的选择了!小二哥这里主要提及GitHubCopilot,JetBrainsAIAssistant和Cursor。主要原因是:对比多款产品后,这三款工具是目前读者小伙伴中受众最高的,也是小......