git徹底刪除或變更子模塊


今天遇到一個很怪的問題,我想把我的一個子模塊切換到另一個上游,我按照網上的方法刪除子模塊然后新建后,這個子模塊依舊跟蹤着我先前的上游。自己摸索了一下,可能方法比較傻,不過是可行的,希望能給大家一些幫助。

  1. 使原先子模塊不被版本控制(先把子模塊從版本控制系統移除)
git rm --cached /path/to/files
  1. 刪除子模塊目錄
rm -rf /path/to/files
  1. 修改 .gitmodules,移除這個 submodule
-[submodule "themes/next"]
-	path = themes/next
-	url = https://github.com/theme-next/hexo-theme-next.git
  1. 修改 .git/config 內容,把需要刪除的 submodule 配置項刪除
  2. 修改 .git/modules 文件夾內容,把你想要刪除的子模塊目錄刪除(這項十分重要,或者你知道怎么修改也可以修改,不然導致的后果就是你改過來的同名子模塊依然跟蹤着之前的分支,git pull 也沒法拉取你在 .gitmosules 中新定義的上游地址)
  3. 后面再按照普通的方法添加子模塊即可

一些子模塊的操作可以參見Git Submodule 用法筆記


免責聲明!

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



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