拆分項目,當項目愈來愈大以後,咱們但願 子模塊 能夠單獨管理,並由 專門 的人去維護,這個時候只能夠使用 git submodule
去完成。git
git clone <repository> --recursive # 遞歸方式克隆整個項目 git submodule add <repository> path # 添加子模塊 git submodule init # 初始化子模塊 git submodule update # 更新子模塊 git submodule foreach git pull # 拉取全部子模塊
git submodule add <repository> path
便可添加shell
git clone <repository> --recursive
直接遞歸克隆,若是是克隆父項目,能夠在克隆完成以後,使用 git submodule init
初始化子項目列表和 git submodule update
更新最新的子項目。服務器
若是子模塊和新的修改,可是父項目沒有更新到最新,則能夠使用 git submodule foreach git pull
將全部的子項目中更新,若是子項目比 .gitmodules 新,則須要更新一下 .gitmodules 。code
父項目中的子模塊的版本是由 commit id 標識的,因此須要更新 .gitmodules 。遞歸
首先須要 git rm --cached <path>
,而後依次刪除對應的目錄、.gitmodules 文件中的記錄、 .git/cofig 中的記錄。再提交到遠程服務器,就能夠刪除了。get
注意:同步
在執行
git rm --cached <path>
的時候,最後不能夠有
/ 。
與刪除相同,須要同時修改 .gitmodules 和 .git/config 兩個文件中的 URL 值,而後執行 git submodule sync
來同步,而後再提交到遠程便可。it
文章首發於:https://www.zucchiniy.cnclass