昨天在github上clone了DTCoreText這個(gè)工程酵幕,編譯錯(cuò)誤,缺少文件蚁趁,后來(lái)發(fā)現(xiàn)是缺少了git submodule裙盾。
轉(zhuǎn)自:http://webfrogs.me/2013/03/20/git-submodule/
開發(fā)過(guò)程中,經(jīng)常會(huì)有一些通用的部分希望抽取出來(lái)做成一個(gè)公共庫(kù)來(lái)提供給別的工程來(lái)使用,而公共代碼庫(kù)的版本管理是個(gè)麻煩的事情番官。今天無(wú)意中發(fā)現(xiàn)了git的git submodule命令庐完,之前的問(wèn)題迎刃而解了。
為當(dāng)前工程添加submodule徘熔,命令如下:
git submodule add 倉(cāng)庫(kù)地址 路徑
其中门躯,倉(cāng)庫(kù)地址是指子模塊倉(cāng)庫(kù)地址,路徑指將子模塊放置在當(dāng)前工程下的路徑酷师。
注意:路徑不能以 / 結(jié)尾(會(huì)造成修改不生效)讶凉、不能是現(xiàn)有工程已有的目錄(不能順利 Clone)
命令執(zhí)行完成,會(huì)在當(dāng)前工程根路徑下生成一個(gè)名為“.gitmodules”的文件山孔,其中記錄了子模塊的信息懂讯。添加完成以后,再將子模塊所在的文件夾添加到工程中即可台颠。
submodule的刪除稍微麻煩點(diǎn):首先褐望,要在“.gitmodules”文件中刪除相應(yīng)配置信息。然后串前,執(zhí)行“git rm –cached ”命令將子模塊所在的文件從git中刪除瘫里。
當(dāng)使用git clone下來(lái)的工程中帶有submodule時(shí),初始的時(shí)候荡碾,submodule的內(nèi)容并不會(huì)自動(dòng)下載下來(lái)的谨读,此時(shí),只需執(zhí)行如下命令:
git submodule update --init --recursive
即可將子模塊內(nèi)容下載下來(lái)后工程才不會(huì)缺少相應(yīng)的文件坛吁。