git submodule 使用命令簡介
阿新 • • 發佈:2019-02-10
抽取專案公共模組,多專案共用,必然會使用到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相關配置檔案中刪除條目。
- 刪除 [專案根目錄/.gitmodules] 中對應的條目
- 刪除 [專案根目錄/.git/config] 中對應的條目
- 刪除 [專案根目錄/.git/modules] 目錄下的對應的submodule資料夾
- 執行 git rm –cached [modulename] 命令
- 刪除 submodule 模組內容