git submodule 子模塊的管理和使用

子模塊前面有一個-,說明子模塊文件還未檢入(空文件夾)。

  1. 初始化子模塊
$ git submodule init
Submodule 'assets' (https://github.com/maonx/vimwiki-assets.git) registered for path 'assets'

初始化模塊只需在克隆父項目後運行一次。

  1. 更新子模塊
$ git submodule update
Cloning into 'assets'...
remote: Counting objects: 151, done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 151 (delta 18), reused 0 (delta 0), pack-reused 70
Receiving objects: 100% (151/151), 1.34 MiB | 569.00 KiB/s, done.
Resolving deltas: 100% (36/36), done.
Checking connectivity... done.
Submodule path 'assets': checked out 'e33f854d3f51f5ebd771a68da05ad0371a3c0570'

遞歸克隆整個項目

git clone https://github.com/maonx/vimwiki-assets.git assets --recursive 

遞歸克隆整個項目,子模塊已經同時更新了,一步到位。

修改子模塊

在子模塊中修改文件後,直接提交到遠程項目分支。

$ git add .
$ git ci -m "commit"
$ git push origin HEAD:master

刪除子模塊

刪除子模塊比較麻煩,需要手動刪除相關的文件,否則在添加子模塊時有可能出現錯誤
同樣以刪除assets文件夾爲例

  1. 刪除子模塊文件夾
$ git rm --cached assets
$ rm -rf assets
  1. 刪除.gitmodules文件中相關子模塊信息
[submodule "assets"]
  path = assets
  url = https://github.com/maonx/vimwiki-assets.git
  1. 刪除.git/config中的相關子模塊信息
[submodule "assets"]
  url = https://github.com/maonx/vimwiki-assets.git
  1. 刪除.git文件夾中的相關子模塊文件
$ rm -rf .git/modules/assets

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章