解决git 不同branch 下node_moudes不同步的问题

2022 年 11 月 10 日 星期四(已编辑)
/ ,
11
摘要
在遇到某个依赖重大更新,可能要修改很多代码的时候,你希望在彻底升级成功之前,不搞乱 `node_modules`目录。这时候就要祭出 `git worktree`这个命令。
这篇文章上次修改于 2024 年 7 月 20 日 星期六,可能部分内容已经不适用,如有疑问可询问作者。

解决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这个命令了 shell 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 以后,你想怎么升级node_modules,都不会影响到原来工作目录下的node_modules

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

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

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

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...