1. 程式人生 > >git submodule 使用命令簡介

git submodule 使用命令簡介

抽取專案公共模組,多專案共用,必然會使用到git submodule命令。
專案中submodule的管理,無外乎新增,更新,刪除等操作。

1. submodule 新增

進入到git專案根目錄下,輸入命令:

git submodule add [-b master ] [URL to Git repo] [local path]

其中,[-b master] 為submodule的預設分支,[local path]為submodule的本地路徑。

若出現如下提示,則表示submodule新增成功。

這裡寫圖片描述

命令執行完成,會在當前工程根路徑下生成一個名為“.gitmodules”的檔案,其中記錄了子模組的資訊,如下:

[submodule "libraries/pushserver"]
 path = libraries/pushserver                //本地路徑
 url = git@*****/android-library-push.git   //倉庫地址
 branch = master                            //預設分支

2. submodule 更新

若專案中包含.gitmodules, 進入到git專案根目錄下,輸入命令, .gitmodules中的所有專案都會進行更新:

git clone 父專案.git
git submodule init
git submodule update (update時,submodule分支必須已在正確分支上)

submodule遠端分支發生變更後,直接使用git submodule update是不會進行更新操作的。必須依次進入到各個submodule的目錄,進行git pull操作,如果submodule數目很多,每次發版本時必須進入所有目錄進行git pull,這將是噩夢。不過有個更簡單的方法,

git submodule foreach git checkout master
git submodule foreach git pull

3. submodule 刪除

刪除submodule會麻煩些,僅僅刪除submodule模組內容,是無法徹底從git中刪除掉。還需要到git相關配置檔案中刪除條目。

  1. 刪除 [專案根目錄/.gitmodules] 中對應的條目
  2. 刪除 [專案根目錄/.git/config] 中對應的條目
  3. 刪除 [專案根目錄/.git/modules] 目錄下的對應的submodule資料夾
  4. 執行 git rm –cached [modulename] 命令
  5. 刪除 submodule 模組內容