在軟體開發過程中,通常我們會遇到有一些通用的部分希望抽取出來做成乙個公共庫的情況,比如安卓和ios都通用的h5頁面。而公共**庫的版本管理是個麻煩的事情。幸運的是,萬能的git有個叫子模組(git submodule)的命令完美地幫我們解決了這個問題。
為當前工程新增submodule,命令如下:
git submodule add 倉庫位址 路徑
其中,倉庫位址是指子模組倉庫位址,路徑指將子模組放置在當前工程下的路徑。
注意:路徑不能以 / 結尾(會造成修改不生效)、不能是現有工程已有的目錄(不能順利 clone)
命令執行完成,會在當前工程根路徑下生成乙個名為「.gitmodules」的檔案,其中記錄了子模組的資訊。新增完成以後,再將子模組所在的資料夾新增到工程中即可。
git submodule init
git submodule update
或者是執行以下命令(該命令效果等同於上面兩個命令):
git submodule update --init --recursive
1.更新.gitsubmodule中對應submodule的條目url
2.更新 .git/config 中對應submodule的條目的url
3.執行 git submodule sync
1. 使用vim編輯.gitmodules(vim .gitmodule), 刪除對應要刪除的submodule的行.
2. 使用vim編輯.git/config,刪除有對應要刪除的submodule的行.
3.執行 git rm --cached 。注意,路徑不要加後面的「/」。例如:你的submodule儲存在 supports/libs/websocket/ 目錄。執行命令為: git rm --cached supports/libs/websocket
usage: git submodule [--quiet] [--cached]or: git submodule [--quiet] add [-b
] [-f|--force] [--name ] [--reference ] [--]
or: git submodule [--quiet] status [--cached] [--recursive] [--] [...]
or: git submodule [--quiet] init [--] [...]
or: git submodule [--quiet] deinit [-f|--force] (--all| [--] ...)
or: git submodule [--quiet] update [--init] [--remote] [-n|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference ] [--recursive] [--] [...]
or: git submodule [--quiet] set-branch (--default|--branch
) [--] or: git submodule [--quiet] summary [--cached|--files] [--summary-limit ] [commit] [--] [...]
or: git submodule [--quiet] foreach [--recursive] or: git submodule [--quiet] sync [--recursive] [--] [...]
or: git submodule [--quiet] absorbgitdirs [--] [...]
Git Submodule 管理專案子模組
1 新增乙個子模組 git submodule add 子模組位址 自定義到當前工程的路徑 git commit git push 2 轉殖 更新帶子模組的工程 2.1 方法一 git clone 工程位址,進入工程後 git submodule init init 操作只需要在剛clone下來時執...
Git Submodule管理專案子模組
當專案越來越龐大之後,不可避免的要拆分成多個子模組,我們希望各個子模組有獨立的版本管理,並且由專門的人去維護,這時候我們就要用到git的submodule功能。git clone recursive 遞迴的方式轉殖整個專案 git submodule add 新增子模組 git submodule ...
Git Submodule管理專案子模組
使用場景 當專案越來越龐大之後,不可避免的要拆分成多個子模組,我們希望各個子模組有獨立的版本管理,並且由專門的人去維護,這時候我們就要用到git的submodule功能。常用命令git clone recursive 遞迴的方式轉殖整個專案 git submodule add 新增子模組 git s...