zoukankan      html  css  js  c++  java
  • 解决git 不同branch 下node_moudes不同步的问题

    做nodejs开发,或者vue react等开发的同学,在使用git 做版本管理的时候肯定碰到过这个问题。
    按常规做法node_modules 肯定是被添加到.gitignore中不需要被提交的

    但是在分支切换的时候就会遇到问题 ,经如你在dev分支下就是升级了某个依赖到最新和版本,这时node_modules下所有的文件被更新,这时你如果切会master分支,修改一个小错误 ,就会发现,由于node_modules 下的依赖已经是新版本,但是master中还是用的老版本,代码运行就不正常了,所以你不得不npm install一下,记所有依赖回到原来的版本,master正常了,再切回dev,依赖又不对了,又要npm install 一次,很是麻烦。

    特别最遇到某个依赖重大更新,可能要修改很多代码的时候,你希望在彻底升级成功之前,不搞乱node_modules目录。这时候就要祭出git worktree这个命令了

    λ git worktree add -b upslider ../upslider dev
    Preparing ../upslider (identifier upslider)
    HEAD is now at 44f4bee fix some bug
    

    上面代码,可以建立一个完全干净的全新工作目录upslider,来自于dev分支,你可以cd ../upslider 进入新的工作目录,在这个工作目录下,npm install 以后,你想怎么升级nod_modules,都不会影响到原来工作目录下的node_modules 。

    在新的工作目录下,你完成所有的升级工作,测试一切无误以后,就可以commit了,这样生成一个新的branch,而且这个用于测试升级新工作目录也可以彻底删除,不用担心,代码已经全部进了branch。

    会到原来的工作目录,你可以用git merge upslider 把修改的代码全部合并到当前工作目录。

    这样利用全新目录来升级测试node_modules下的新依赖,完全不打扰到正常工作目录。

  • 相关阅读:
    HTML5 完美解决javascript中iphone手机和android手机复制文本到剪切板问题
    去除移动端alert/confirm的网址(url)
    项目通过tomcat部署到服务器,请求数据中文乱码问题
    JEECG中表单提交的中断
    mysql数据库1129错误
    java中比较两个double类型值的大小
    spring配置上传文件大小
    GET方式,获取服务器文件
    java中多个数字运算后值不对(失真)处理方法
    V-rep学习笔记:关节力矩控制
  • 原文地址:https://www.cnblogs.com/9527/p/9304397.html
Copyright © 2011-2022 走看看