Git歸併有兩種策略:遞歸,章魚。html
1.遞歸策略:當分支數只有兩個的時候。git
2.章魚策略:當分支數大於兩個的時候。shell
Git會自動選擇歸併的方法。工具
3.子樹策略:是Git另外一種歸併方法。(submodule)url
它能夠把另外一個子項目,嵌入到當前項目。並且會很是聰明的合併這些子項目。(之後就不會有困惑了,在引用其餘項目時。)spa
Git使用submodule命令:code
#添加子模塊: git submodule add ~/git/libs/lib1.git libs/lib1 #git會在項目下生成.gitmodule cat .gitmodule
[submodule "libs/lib1"] path = libs/lib1 url = ~/git/libs/lib1.git
#進入libs/lib1目錄 cd libs/lib1 #操做新的庫lib1,看得出是lib1本身的庫remote信息。 git remote -v #進入項目根目錄,初始化submodule,更新submodule(必須在根目錄執行命令) cd ../../ git submodule init git submodule update
在 libs/lib1/ 目錄下添加文檔,發現新增長的子模塊lib1,在git狀態列表中,多了個(untracked content),並不會把lib1庫下的全部改動,在git status體現出來。(方便了項目管理子模塊)htm
像操做git同樣在子模塊管理git工做區。教程
注: 遞歸
若是在添加子模塊後,不回到最上層主分支.忘記了調用命令:git submodule update,那麼你極有可能再次把舊的submodule依賴信息提交上去,當調用命令:git commit -a。
參考: