Git 通過submodule新增子專案/庫(git倉庫巢狀)
阿新 • • 發佈:2019-01-22
Git歸併有兩種策略:遞迴,章魚。
1.遞迴策略:當分支數只有兩個的時候。
2.章魚策略:當分支數大於兩個的時候。
Git會自動選擇歸併的方法。
3.子樹策略:是Git另一種歸併方法。(submodule)
它可以把另一個子專案,嵌入到當前專案。而且會非常聰明的合併這些子專案。(以後就不會有困惑了,在引用其他專案時。)
Git使用submodule命令:
#新增子模組:
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體現出來。(方便了專案管理子模組)
像操作git一樣在子模組管理git工作區。
注:
如果在新增子模組後,不回到最上層主分支.忘記了呼叫命令:git submodule update,那麼你極有可能再次把舊的submodule依賴資訊提交上去,當呼叫命令:git commit -a。
參考:
出處:https://my.oschina.net/iatbforever/blog/228914