git submodule 使用命令簡介

1. submodule 添加

進入到git項目根目錄下,輸入命令:android

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

其中,[-b master] 爲submodule的默認分支,[local path]爲submodule的本地路徑。url

命令執行完成,會在當前工程根路徑下生成一個名爲「.gitmodules」的文件,其中記錄了子模塊的信息,spa

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

2. submodule 更新

若項目中包含.gitmodules, 進入到git項目根目錄下,輸入命令, .gitmodules中的全部項目都會進行更新:code

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

submodule遠程分支發生變動後,直接使用git submodule update是不會進行更新操做的。必須依次進入到各個submodule的目錄,進行git pull操做,若是submodule數目不少,每次發版本時必須進入全部目錄進行git pull,這將是噩夢。不過有個更簡單的方法,同步

git submodule foreach git checkout master 
git submodule foreach git pullit

3. submodule 刪除

刪除submodule會麻煩些,僅僅刪除submodule模塊內容,是沒法完全從git中刪除掉。還須要到git相關配置文件中刪除條目。ast

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

4.切換submodule到指定tag

cd submodule_directory
git checkout v1.0
cd ..
git add submodule_directory
git commit -m "moved submodule to v1.0"
git push

 其餘人員只要執行以下命令,就同步去過module

git pull
git submodule update
相關文章
相關標籤/搜索