常常有這樣的事情,當你在一個項目上工做時,你須要在其中使用另一個項目。也許它是一個第三方開發的庫或者是你獨立開發和並在多個父項目中使用的。這個場景下一個常見的問題產生了:你想將兩個項目單獨處理可是又須要在其中一箇中使用另一個。
子模塊容許你將一個 Git 倉庫看成另一個Git倉庫的子目錄。這容許你克隆另一個倉庫到你的項目中而且保持你的提交相對獨立。git
首先你要把外部的倉庫克隆到你的子目錄中。
假設你想把 pacman項目加入到你的blog項目中,你經過git submodule add
將外部項目加爲子模塊:code
cd blog git submodule add https://gitcafe.com/aceking/pacman.git themes/pacman
如今你就在項目裏的themes/pacman子目錄下有了一個 pacan項目。你能夠進入那個子目錄,進行變動,加入你本身的遠程可寫倉庫來推送你的變動,從原始倉庫拉取和歸併等等。blog
.gitmodules文件: 這是一個配置文件,保存了項目 URL 和你拉取到的本地子目錄。開發
克隆你剛纔建立子模塊的項目。你將獲得了包含子項目的目錄,但裏面沒有文件:pacman目錄存在了,可是是空的。
你必須運行兩個命令:git submodule init
來初始化你的本地配置文件,git submodule update
來從那個項目拉取全部數據並檢出你上層項目裏所列的合適的提交。get
cd blog git submodule init themes/pacaman git submodule update
如今你的pacman子目錄就處於你先前提交的確切狀態了。it
參考:
Git-子模塊module