【转】gitlab 创建子模块 git submodule 教程
转自https://blog.csdn.net/Youngboy007/article/details/121649114?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-121649114-blog-120182063.235%5Ev37%5Epc_relevant_anti_vip_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-121649114-blog-120182063.235%5Ev37%5Epc_relevant_anti_vip_base&utm_relevant_index=10
最好理解的submodule教程,最符合逻辑的思维方式创建子模块教程
(1)在gitlab上创建一个空的仓库,这个称为主模块,在这个模块里面再创建子模块。
(2)在gitlab上再次创建一个空的仓库,这个空仓库是子模块,子模块还要创建一个文件,要提交到这个模块里面,因为子模块需要有commit 信息,主模块就是要链接到子模块这个commit信息里面(如果你已经有了子模块,并且提交过commit,可以不用创建)
(3)在本地的位置去把步骤(1)创建的主模块git clone 到本地
git clone http://********************
(4)进入到主文件夹里面
(5)这一步要添加子模块了:
使用命令:git submodule add http://*************** (这个地址是步骤 2 里面的子模块的地址)
如果有报错:
fatal: A git directory for '//’ is found locally with remote(s):
origin http://****************
没关系,说明你本地有子模块了,那么使用命令:
git submodule add --force http://***************
这时,你会发现本地有了子模块了。
(6)检查下:现在检查下状态:
git status
你会发现子模块已经添加进来了 .gitmodules
(7)把这些文件添加到主模块:
git add .
git commit -m “test”
git push -u origin master
(8)去往gitlab上查看仓库,发现了
子模块已经添加进来了,子模块是以链接形式添加进来的,后缀还是@2ad992bd 的16进制符号这是你的子模块的commit id,当你点击这个文件夹就会跳到子模块去,这样子模块添加完毕。
(9)别急还没完事。
(10)去往本地,删除本地的主模块,因为我们要从gitlab 仓库去拉取主模块
(11)主模块 git clone http://***************(主模块地址)
(12)进入主模块
(13)进入主模块你发现子模块也被拉下来了,好的
(14)进入子模块文件夹,发现子文件夹没有东西,你的子模块明明是有东西的,好,没问题,下一步。
(15)在主模块的文件夹下,输入命令:
git submodule update --init --recursive
(16)再看,你就发现代码已经有了
(17)若是子模块更新了内容,主模块怎么更新?
git submodule update --remote
(18)你会发现子模块更新了,那么这个时候git status ,有新的东西变化
(19)提交新的变化到主模块
git add.
git commit -m “update”
git push -u origin master
(20)去gitlab主模块看到新的变化
(21)完结!!
————————————————
版权声明:本文为CSDN博主「艺多不压身_临危能救命」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Youngboy007/article/details/121649114