gitlab 创建子模块 git submodule 教程

最好理解的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
gitlab 创建子模块 git submodule 教程_第1张图片
你会发现子模块已经添加进来了 .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)完结!!

你可能感兴趣的:(教程,git,教程)