記錄GitHub子模組使用方法

使用的子模組是這個網站的Theme儲存庫

GitHub: https://github.com/kakawait/hugo-tranquilpeak-theme

儲存路徑: themes/hugo-tranquilpeak-theme

安裝GitHub子模組

git submodule add https://github.com/kakawait/hugo-tranquilpeak-theme.git themes/hugo-tranquilpeak-theme

安裝子模組後有兩項更改需要提交, 否則下次Clone項目後, 將無法直接Clone子模組

  1. .gitmodules
  2. themes/hugo-tranquilpeak-theme

列出已安裝的子模組

git submodule 

Clone已安裝的子模組

重新Clone項目時, 子模組文件夾為空, 需要手動Clone子模組文件, 執行:

git submodule update --init

如果子模式又依賴了其他子模組, 則要執行:

git submodule foreach git submodule update

移除子模組

移除子模組的方法相對複雜, 並且很容易出錯, 先提供一個很low但安全的方法:

  1. 移除.gitmodules內相關行
  2. 刪除themes/hugo-tranquilpeak-theme
  3. 提交所有更改
  4. 刪除項目並重新Clone

正確方法:

  1. 執行git submodule deinit themes/hugo-tranquilpeak-theme
  2. 移除.gitmodules內相關行
  3. 執行git add .gitmodules, 否則無法執行下一步
  4. 執行git rm --cached themes/hugo-tranquilpeak-theme
  5. 刪除themes/hugo-tranquilpeak-theme
  6. 刪除.git/modules/themes/hugo-tranquilpeak-theme(如有)
  7. 提交所有更改