git submodule 管理子項目


使用場景

拆分項目,當項目越來越大之后,我們希望 子模塊 可以單獨管理,並由 專門 的人去維護,這個時候只可以使用 git submodule 去完成。

常用命令

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 即可添加

克隆子模塊

git clone <repository> --recursive 直接遞歸克隆,如果是克隆父項目,可以在克隆完成之后,使用 git submodule init 初始化子項目列表和 git submodule update 更新最新的子項目。

更新子模塊

如果子模塊和新的修改,但是父項目沒有更新到最新,則可以使用 git submodule foreach git pull 將所有的子項目中更新,如果子項目比 .gitmodules 新,則需要更新一下 .gitmodules

父項目中的子模塊的版本是由 commit id 標識的,所以需要更新 .gitmodules

刪除子模塊

首先需要 git rm --cached <path> ,然后依次刪除對應的目錄、.gitmodules 文件中的記錄、 .git/cofig 中的記錄。再提交到遠程服務器,就可以刪除了。

注意:

在執行 git rm --cached <path> 的時候,最后不可以有 /

修改子模塊配置信息

與刪除相同,需要同時修改 .gitmodules.git/config 兩個文件中的 URL 值,然后執行 git submodule sync 來同步,然后再提交到遠程即可。


免責聲明!

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



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