昨天在github上clone了DTCoreText這個工程,編譯錯誤,缺少文件,后來發現是缺少了git submodule。
轉自:http://webfrogs.me/2013/03/20/git-submodule/
開發過程中,經常會有一些通用的部分希望抽取出來做成一個公共庫來提供給別的工程來使用,而公共代碼庫的版本管理是個麻煩的事情。今天無意中發現了git的git submodule命令,之前的問題迎刃而解了。
為當前工程添加submodule,命令如下:
git submodule add 倉庫地址 路徑
其中,倉庫地址是指子模塊倉庫地址,路徑指將子模塊放置在當前工程下的路徑。
注意:路徑不能以 / 結尾(會造成修改不生效)、不能是現有工程已有的目錄(不能順利 Clone)
命令執行完成,會在當前工程根路徑下生成一個名為“.gitmodules”的文件,其中記錄了子模塊的信息。添加完成以后,再將子模塊所在的文件夾添加到工程中即可。
submodule的刪除稍微麻煩點:首先,要在“.gitmodules”文件中刪除相應配置信息。然后,執行“git rm –cached ”命令將子模塊所在的文件從git中刪除。
當使用git clone下來的工程中帶有submodule時,初始的時候,submodule的內容并不會自動下載下來的,此時,只需執行如下命令:
git submodule update --init --recursive
即可將子模塊內容下載下來后工程才不會缺少相應的文件。