開發過程中,經常會有一些通用的部分希望抽取出來做成一個公共庫來提供給別的工程來使用,而公共代碼庫的版本管理是個麻煩的事情。而且一旦更新了就要同步到多個引用的系統中,這個時候使用git submodule,然後執行: git submodule update就全部搞定了。
下面就以Android開發爲例,講述下submodule的具體用法。
假設一個Android Demo的目錄是這樣的:app, extras。其中app是程序的主要目錄,extras目錄是引用的一些library, 比如程序中引用了volley的library.
添加
爲當前工程添加submodule,命令如下:
git submodule add 倉庫地址 路徑
即
git submodule add https://android.googlesource.com/platform/frameworks/volley extras
命令執行完成,會在當前工程根路徑下生成一個名爲“.gitmodules”的文件,其中記錄了子模塊的信息。添加完成以後,再將子模塊所在的文件夾添加到工程中即可。
更新
如果過了一段時間volley庫有更新,這時候我們的app也需要更新,命令如下:
git submodule update
刪除
ubmodule的刪除稍微麻煩點:首先,要在“.gitmodules”文件中刪除相應配置信息。然後,執行“git rm –cached ”命令將子模塊所在的文件從git中刪除。
下載的工程帶有submodule
當使用git clone下來的工程中帶有submodule時,初始的時候,submodule的內容並不會自動下載下來的,此時,只需執行如下命令:
git submodule update --init --recursive
即可將子模塊內容下載下來後工程纔不會缺少相應的文件。