-
Notifications
You must be signed in to change notification settings - Fork 228
Manage a git library with submodules
Jacky Tsang edited this page Apr 19, 2014
·
10 revisions
管理带有子模块的git库(DragonBonesCPP)
Manage a git library with submodules.
DragonBonesCPP 是一个包含子模块的库,在 clong/commit/push 的时候需要一些额外的操作。
本文将描述这些操作。
限(wei)于(le)篇(tou)幅(lan),请自行学习下面的内容:
git clone --recursive [email protected]:DragonBones/DragonBonesCPP.git
使用这个方法,将会自动 clone 该项目下的所有子模块。这其实是最简单的方法了。
为什么说它令人蛋碎呢?因为 DragoneBones 中包含的 engines/cocos2d-x 子模块也包含子模块。
这样就出现了嵌套子模块,一个 cocos2d-x 的所有历史加起来就超过1G了,再加上子模块的所有历史,这就……。
为了避免蛋碎的问题,我们换一个方法,可是蛋疼是免不了了。
# git clone [email protected]:DragonBones/DragonBonesCPP.git
# git clone [email protected]:DragonBones/DragonBonesCPP.git
Cloning into 'DragonBonesCPP'...
remote: Counting objects: 103, done.
remote: Compressing objects: 100% (87/87), done.
remote: Total 103 (delta 18), reused 96 (delta 13)
Receiving objects: 100% (103/103), 88.96 KiB | 47 KiB/s, done.
Resolving deltas: 100% (18/18), done.
# cd DragonBonesCPP
# DragonBonesCPP git:(master) git submodule status
-a7709c35badbd930f98adaf1c172a3251f8c6543 engines/cocos2d-x
# DragonBonesCPP git:(master) git submodule init
Submodule 'cocos2d-x' ([email protected]:DragonBones/cocos2d-x.git) registered for path 'engines/cocos2d-x'
#
# DragonBonesCPP git:(master) git submodule update
Cloning into 'engines/cocos2d-x'...
remote: Reusing existing pack: 200502, done.
Receiving objects: 100% (200502/200502), 763.78 MiB | 98 KiB/s, done.
Resolving deltas: 100% (133006/133006), done.
Submodule path 'engines/cocos2d-x': checked out 'a7709c35badbd930f98adaf1c172a32 51f8c6543'
等待是漫长的,看我的网速就知道这到底花了多长时间。
和蛋碎方法不同的是,这种方法不会clone cocos2d-x 中的子模块(嵌套子模块)。若有需要,可以进入 cocos2d-x 中再次执行蛋疼方法二。
待续
待续
待续