git worktree 依赖隔离、多分支开发图文详解

这篇具有很好参考价值的文章主要介绍了git worktree 依赖隔离、多分支开发图文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 前言

  • 今天做项目开发时,发现切换分支后,有一个功能就会有问题,原因是因为两个分支的依赖项不一致,导致每次切换分支时都需要 npm install 一下,那有没有什么办法能做到依赖隔离呢?
  • 我们切换分支开发时,若有不想提交的代码,一般是使用 git stash 暂存起来,然后 git checkout ,开发完成后再使用 git stash pop 将暂存取出来继续开发。但是 git checkout 的开发都是基于同一个文件进行修改,而 node_modules 都会被记录到 .gitignore 文件下进行 git 忽略,所以不会被 git stash 暂存上,如果有依赖变化,切换分支之后 node_modules 使用的是上一个分支的最新依赖,可能会导致原分支上的功能不可用。
  • 使用 git worktree 可以做到依赖隔离,且只需要维护一个仓库,又可以同时在多个分支上进行工作

2 常用命令

2.1 查看所有 worktree

git clone 一个项目之后,都会有一个默认的 worktree

git worktree list

git worktree,Git,git,github,npm

2.2 添加 worktree

git worktree add 路径名

git worktree add test
  • 在当前目录下新增一个 test 文件夹
  • test 文件夹的内容为当前分支的克隆文件
  • 默认新增一个 test 分支
git worktree add ../test
  • 在上一层级目录下新增一个 test 文件夹
  • test 文件夹的内容为当前分支的克隆文件
  • 默认新增一个 test 分支

git worktree add 路径名 -b 新分支名

git worktree add test -b dev
  • 在当前目录下新增一个 test 文件夹
  • test 文件夹的内容为当前分支的克隆文件
  • 新增一个 dev 分支

git worktree add 路径名 -b 新分支名 远程分支名

git worktree add test -b dev origin/dev
  • 在当前目录下新增一个 test 文件夹
  • test 文件夹的内容为远程分支 origin/dev 的克隆文件
  • 新增一个 dev 分支

2.3 移除 worktree

git worktree remove 工作树名

git worktree remove test

2.4 清洁 worktree

git worktree prune

3 图文详解

  • vscode 打开 commitTest 文件夹,此时本地分支为 master 分支,在该分支上安装了一个 moment 包
    git worktree,Git,git,github,npm

  • 新增一个名为 test 的 worktree
    新生成的 test 文件夹下自动 clone 与本地 master 分支一样的内容(有eslint,但没有上一步在本地 master 分支上安装的 moment,只会 clone 已经 commit 的内容)
    git worktree,Git,git,github,npm

  • 为了方便比较, 重新打开一个 vscode ,打开文件夹为 test 文件夹
    安装 axios 包,并新增一个 txt 文件,此时, test 文件夹下的 node_modules 有 axios ,但没有 moment
    git worktree,Git,git,github,npm

  • commitTest 文件夹下的 node_modules 只有 moment , 没有 axios , 依赖已隔离
    git worktree,Git,git,github,npm

  • 可正常执行 git add 、 git commit 、 git push 等操作
    git worktree,Git,git,github,npm

  • 远程仓库上新增了 test 分支, package.json 记录的安装包为 eslint 和 axios ,与本地 worktree 一致
    git worktree,Git,git,github,npm

  • 执行 git worktree remove test , test 文件夹将被删除,但 test 分支会被保留
    git worktree,Git,git,github,npm

4 注意事项

  1. 当前 worktree 使用完后,记得执行 git worktree remove ,避免文件越来越多占用磁盘内存
  2. 建议新增 worktree 后, vscode 打开 worktree 新增的文件夹进行开发,否则没有修改内容对比
  3. 若本地存在与新增 worktree 同名分支,会 clone 与本地同名分支的内容
  • 执行 git worktree add 路径名,默认生成与路径名同名的新分支
  • 若本地没有同名分支,则 clone 内容为当前分支的克隆文件
  • 若本地有同名分支,则 clone 内容为同名分支的克隆文件

在 master 分支上执行以下命令,新增一个名为 clone 本地分支

git worktree add clone
git worktree remove clone
git checkout dev

在 dev 分支上执行以下命令, copy 与 clone 文件夹下的内容不同

git worktree add copy
git worktree add clone

git worktree,Git,git,github,npm

git worktree,Git,git,github,npm文章来源地址https://www.toymoban.com/news/detail-776306.html

到了这里,关于git worktree 依赖隔离、多分支开发图文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git企业开发】第四节.Git的分支管理策略和bug分支

    文章目录 前言 一、Git的分支管理策略       1.1 Fast forward 模式和--no-ff 模式       1.2 企业分支管理策略 二、bug分支 三、删除临时分支 四、总结 总结 通常合并分支时,如果可能,Git 会采用 Fast forward 模式。还记得如果我们采用 Fast forward 模式之后,形成的合并结果是什么

    2024年02月06日
    浏览(35)
  • Git 分支详解

    1. 主分支(主干/主线/main/master) 包含所有最终修改的历史,反映项目的最终版本。 建议不要乱动主干,如果你编辑了一个小组项目的主干分支,你的改动会影响到其他人,而且很快就会出现合并冲突。 2. 开发分支(集成分支/develop/dev) 与主分支平行,该分支包含了为下一

    2024年02月12日
    浏览(20)
  • Git 分支管理详解

    1.前言  我们先来说一个简单的案例吧,你们团队中有多个人再开发一下项目,一同事再开发一个新的功能,需要一周时间完成,他写了其中的30%还没有写完,如果他提 交了这个版本,那么团队中的其它人就不能继续开发了。但是等到他全部写完再全部提交,大家又看不到他

    2023年04月24日
    浏览(27)
  • Git分支教程:详解分支创建、合并、删除等操作

    Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效。分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作。本篇博客将详解Git分支的创建、合并、删除等操作,帮助你更好地理解和使用Git的分支功能。 在开

    2024年02月14日
    浏览(49)
  • Git 分支教程:详解分支创建、合并、删除等操作

    Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效。分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作。本篇博客将详解Git分支的创建、合并、删除等操作,帮助你更好地理解和使用Git的分支功能。 在开

    2024年02月05日
    浏览(35)
  • git合并分支(开发版本分支合并到发布版本分支)

    将一个分支合并到另一个分支(或者说将开发版本的分支覆盖到发布版本分支) 假设当前有两个分支 : develop分支 :主要在开发的分支,每日开发的代码都存为该分支 master分支 :作为发布版本的分支,将当前重大版本的代码存为该分支 现在目的 :将develop的内容合并到master分

    2024年02月07日
    浏览(34)
  • 【Git】分支协同开发

    由于之前一直是在master上开发 没有分支开发过  接触过好几个项目组 远程仓库不是用码云就是 gitlab 然后几个人在master开发 也没有UAT分支这些 没有分支协同开发很容易把冲突  读完本文 你将对Git分支开发又有一个新的认识 master和UAT在远程都是保护分支 master分支是主分支

    2024年04月09日
    浏览(28)
  • Git分支——多人协作开发

    Git分支可以将主线任务(项目)分为若干个分支,一个或若干个人操控一个分支,在同一时间点各司其职,完成相对应的工作,各分支完成之后总汇在主线任务上,在最短的时间内完成项目需求,实现多人协作开发 多人协作开发不仅仅节省时间,还能防止互相干扰,每一个具

    2023年04月08日
    浏览(28)
  • 【DevOps】Git 图文详解(九):工作中的 Git 实践

    本系列包含: Git 图文详解(一):简介及基础概念 Git 图文详解(二):Git 安装及配置 Git 图文详解(三):常用的 Git GUI Git 图文详解(四):Git 使用入门 Git 图文详解(五):远程仓库 Git 图文详解(六):Git 利器 - 分支 Git 图文详解(七):标签管理 Git 图文详解(八)

    2024年02月04日
    浏览(28)
  • 【Git】说说Git中开发测试的使用&Git分支&Git标签的使用场景

    dev环境 :开发环境,外部用户无法访问,开发人员使用,版本变动很大。 test环境 :测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定。 pre环境 :灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。 pro(master)环境 :生产环境,面向

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包