解决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下的新依赖,完全不打扰到正常工作目录。
解决git 不同branch 下node_moudes不同步的问题的更多相关文章
- 解决git客户端MINGW32下的“Could not open a connection to your authentication agent.”
使用git, 下载客户端后想进行和github 进行ssh 互通 出现以下情况: hadoop@deng-PC MINGW32 ~/.ssh$ ssh-add ~/.ssh/id_rsaCould n ...
- ubuntu下安装Firefox中国版解决Ubuntu与Windows下Firefox账号同步问题(已解决)
1. 下载最新版本火狐Linux版 下载地址:http://firefox.com.cn/download/ 选择火狐Linux64-bit版,下载后文件为:Firefox-latest-x86_64 ...
- Git master branch has no upstream branch的解决
Git master branch has no upstream branch的解决 在push代码时,出现“git master branch has no upstream branch”问题的 ...
- Git Your branch is ahead of 'origin/master' by X commits解决方法
(1)方法1:git fetch origin (2)方法2(代码还需要):git push origin (3)方法3 (代码不需要):git reset --hard origin/$branch ...
- Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法
Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法 1.git在本地的电脑创建了仓库,要远程同步github的仓库.使用 ...
- Windows下如何解决git bash的默认home目录路径问题
转自:http://blog.csdn.net/lucien_zhou/article/details/62069246 为了解决这个问题,我在网上找了好久,尝试过按网上其他人所述,修改 git 安装 ...
- [转]Git for windows 下vim解决中文乱码的有关问题
Git for windows 下vim解决中文乱码的问题 原文链接:Git for windows 下vim解决中文乱码的有关问题 1.右键打开Git bash: 2.cd ~ 3.vim .vim ...
- 什么是git?window下安装git
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 解决git pull时出现的几个问题
第1个问题: 解决GIT代码仓库不同步 今天在执行git pull时出现: 解决方法:执行git checkout -f,然后再执行git pull重新checkout 再执行git pull时就可以 ...
随机推荐
- sql语句1——join
注:一下内容来自于http://www.w3school.com.cn/sql/ 1. 引用两个表 我们可以通过引用两个表的方式,从两个表中获取数据: 谁订购了产品,并且他们订购了什么产品? sele ...
- [POJ3764]最长异或路径
Description: 给定一棵n个点的带权树,结点下标从1开始到N.寻找树中找两个结点,求最长的异或路径. Hint: \(n<=10^5\) Solution: 真是01Trie傻逼题,居 ...
- OpenCV3.3.0 + CLion + CMake 配置(Mac巨细无敌版)
目录 开始 完成了 参考链接: 1,cmake编译 http://blog.csdn.net/baidu_36316735/article/details/53168438 2,CLion导入open ...
- Vue.Js初学踩坑
1 Vue2之后取消了v-bind的.sync修饰符,意味着父子组件的数据不能以此来实现双向绑定. 2 Vue2之后取消了filterBy过滤器,所以以下这种用法是错误的了. <tbody> ...
- Ruby面向对象
Ruby面向对象 Ruby是真正的面向对象语言,一切皆为对象,甚至基本数据类型都是对象 基本用法 class Box # 构造函数 def initialize(w,h) @with, @heig ...
- PAT Basic 1007
1007 素数对猜想 (20 分) 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想 ...
- python之property属性
Property的概念:property是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值. import math class Circle: def __init__(self,radi ...
- JSP显示页面和数据库乱码
页面 和 数据库编码都是UTF-8,但就是奇怪. 指定Tomcat的编码为UTF-8 就行了
- 国内的Android SDK镜像
如果你不愿意改hosts文件,没有好的FQ工具,可以考虑使用国内的镜像源 1.南阳理工学院镜像服务器地址: mirror.nyist.edu.cn 端口:80 2.中国科学院开源协会镜像站地址: IP ...
- Adding a custom jar as a maven dependency
Using maven in a Java project is great. It manages builds (as customized as you may need), execution ...