git 添加子模块(submodule)

步骤1:在父仓库中添加子仓库

  • 创建父仓库(parent)如地址: https://github.com/a/a.git
  • 创建子仓库(child) 如地址: https://github.com/a/b.git(如果该仓库已经存在则不需要再创建

注: 创建仓库的时候勾选README.md,保证不是空仓库

步骤2:打开git bash命令窗口

步骤3:父仓库添加子仓库依赖

①克隆父仓库

$ git clone https://github.com/a/a.git

②添加子仓库

$ git submodule add https://github.com/a/b.git

③push到父仓库

$ git add .

$ git commit -m ‘添加子模块’

$ git push

注: 当第二步(添加子仓库)操作完成之后,项目中将生成gitmodules文件

文件内容如下:

[submodule "b"]

       path = b

       url = https://github.com/a/b.git

其它辅助用法

递归克隆父仓库

$ git clone --recursive https://github.com/a/a.git

更新子仓库

6.1 更新已存在的仓库代码

git submodule foreach git pull origin master

6.2 更新新增的子仓库代码

git submodule update

6.3 删除子模块

git submodule deinit submodulename

git rm submodulename

git rm --cached submodulename

rm -rf ./git/modules/submodulename 这一步是针对已经update之后的子模块删除的

6.4 修改子模块url

打开.gitmodules,找到对应模块的url并修改,然后保存

打开git,输入git submodule sync


版权声明:本文为u010784833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。