開發(fā)過程中硬萍,經(jīng)常會有一些通用的部分希望抽取出來做成一個公共庫來提供給別的工程來使用海铆,而公共代碼庫的版本管理是個麻煩的事情载庭。今天無意中發(fā)現(xiàn)了Git的git submodule命令宾茂,之前的問題迎刃而解了生兆。
添加
為當(dāng)前工程添加submodule难捌,命令如下:
git submodule add 倉庫地址 路徑
如:git submodule add “gitAddress” currentAdress/vector
currentAddress是當(dāng)前目錄中的cureentAdress目錄,vector是把引入的項目放在vector目錄下鸦难。
其中根吁,倉庫地址是指子模塊倉庫地址,路徑指將子模塊放置在當(dāng)前工程下的路徑合蔽。注意:路徑不能以 / 結(jié)尾(會造成修改不生效)击敌、不能是現(xiàn)有工程已有的目錄(不能順利 Clone)
命令執(zhí)行完成,會在當(dāng)前工程根路徑下生成一個名為“.gitmodules”的文件拴事,其中記錄了子模塊的信息沃斤。添加完成以后,再將子模塊所在的文件夾添加到工程中即可刃宵。
.gitmodules文件是隱藏文件衡瓶,需要命令:ls -a可查看? 命令:open .gitmodules 可打開查看文件內(nèi)容。
更新
如果公共模塊有更新牲证,這時候我們本地也需要更新鞍陨,命令如下:
git submodule update
刪除
submodule的刪除稍微麻煩點:首先,要在“.gitmodules”文件中刪除相應(yīng)配置信息从隆。然后诚撵,執(zhí)行“git rm –cached ”命令將子模塊所在的文件從git中刪除。
下載的工程帶有submodule
當(dāng)使用git clone下來的工程中帶有submodule時键闺,初始的時候寿烟,submodule的內(nèi)容并不會自動下載下來的,此時辛燥,只需執(zhí)行如下命令:
git submodule update --init --recursive
即可將子模塊內(nèi)容下載下來后工程才不會缺少相應(yīng)的文件筛武。
參考文獻(xiàn):
stormzhang的文章:http://stormzhang.com/git/2014/02/13/git-submodule/
咖啡兔的文章:http://www.kafeitu.me/git/2012/03/27/git-submodule.html