git submodule study
添加子模塊
git submodule add http://ip:3000/darren/node-demo.git node-demo
git submodule add http://ip:3000/darren/vue-demo.git vue-demo
更新子模塊
方法一、git submodule foreach git pull
方法二、分別進入子模塊目錄
執(zhí)行 git pull
更新Submodule的時候如果有新的commit id產(chǎn)生揭斧,需要在父項目產(chǎn)生一個新的提交
子模塊的commit會變?yōu)樽钚碌腸ommit id。
克隆子模塊
clone Submodule有兩種方式 一種是采用遞歸的方式clone整個項目逃魄,一種是clone父項目,再更新子項目。
方法一、采用遞歸參數(shù) --recursive
git clone http://ip:3000/darren/submodule-demo.git --recursive
方法二悦昵、先clone父項目,再初始化Submodule
git clone http://ip:3000/darren/submodule-demo.git
git submodule init
git submodule update
或者
git submodule update --init --recursive
刪除子模塊
有時子模塊的項目維護地址發(fā)生了變化晌畅,或者需要替換子模塊,就需要刪除原有的子模塊寡痰。
git 并不支持直接刪除Submodule需要手動刪除對應(yīng)的文件:
刪除子模塊較復雜抗楔,步驟如下:
rm -rf 子模塊目錄 刪除子模塊目錄及源碼
vi .gitmodules 刪除項目目錄下.gitmodules文件中子模塊相關(guān)條目
vi .git/config 刪除配置項中子模塊相關(guān)條目
rm .git/module/* 刪除模塊下的子模塊目錄棋凳,每個子模塊對應(yīng)一個目錄,注意只刪除對應(yīng)的子模塊目錄即可
執(zhí)行完成后连躏,再執(zhí)行添加子模塊命令即可剩岳,如果仍然報錯,執(zhí)行如下:
git rm --cached 子模塊名稱
完成刪除后入热,提交到倉庫即可拍棕。
相關(guān)命令
拉取所有子模塊
git submodule foreach git pull
git submodule foreach --recursive git submodule init
git submodule foreach --recursive git submodule update