解決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下的新依賴,完全不打擾到正常工作目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM