做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下的新依赖,完全不打扰到正常工作目录。

最新文章

  1. easyui tabs update后tab上关闭图标失效的解决方案
  2. EF6配合MySQL或MSSQL(CodeFirst模式)配置指引
  3. 使用laravel一分钟搭建CURD后台页面
  4. ElasticSearch插件安装Head、Kopf与Bigdesk
  5. GDI+ 如何将图片绘制成圆形的图片
  6. Different Ways to Add Parentheses——Leetcode
  7. file_get_contents 超时设置
  8. NetBeans 7.2 or 8.0 编辑文件时不显示文件路径。
  9. MySQL插入数据时插入无效的列
  10. 数据库MySQL——安装
  11. JS里的<!-- //--> 注释有什么作用
  12. mysql+ssl主从复制
  13. laravel框架中的邮箱发送
  14. spring框架学习笔记3:使用注解代替配置文件
  15. 网站项目所有js css无法引用问题解决方案
  16. RHEL7 光盘修复
  17. 为上海莫大型重工企业提供基于TFS的软件研发流程管理培训
  18. Unmanaged Exports生成Dll时的一些疑难杂症疗法
  19. Android -- 图片处理, 画画板,缩放,旋转,平移,镜面,倒影,图片合成,颜色处理
  20. 为什么说 Gumroad 是一家 “失败” 的创业公司?

热门文章

  1. 想造轮子的时候,ctrl+f一下
  2. Beautifulsoup官方文档
  3. SQL 分隔字符串
  4. SQL 自定义四舍五入
  5. 37_Reverse3_digit_Integer
  6. Django Simple Captcha插件
  7. centos安装ES(elasticsearch)
  8. 2017-9-24-Linux移植:ubuntu server 16.04无法联网&无法apt-get update解决
  9. VS Code编写Python3 insert 数据库插入无效也不报错的坑~.~
  10. PAT Basic 1001