Git常用套路(07)子模块

  • 前提:父项目和子项目都是独立的项目,在父项目中用git方式引入子项目

1、从头开始,初始化子项目

看一下父项目:

Git常用套路(07)子模块

看一下第一个子项目:

Git常用套路(07)子模块

看一下第二个子项目:

Git常用套路(07)子模块

首先克隆下父项目:
git clone [email protected]:blueses/parent.git

然后进入父项目根目录,添加第一个子项目:
git submodule add [email protected]:blueses/son-a.git

添加第二个子项目:
git submodule add [email protected]:blueses/son-b.git

初始化
git submodule init

这时候看父项目中的文件状态:

Git常用套路(07)子模块

多了两个子项目的目录文件夹和一个.gitmodules文件,然后直接提交所有
git commit -m "add all modules"

推送
git push

更新
git submodule udpate --remote

只更新一个
git submodule udpate --remote son-a

在进入网页查看父项目

Git常用套路(07)子模块

可以看到每个子项目的目录后面跟了一个@开始的地址
这个地址对应子项目添加时候的提交id,点击可以查看当时的文件内容

在网页上直接点击子项目文件夹,可以直接进入子项目

2、半路加入

首先克隆父项目
git clone [email protected]:blueses/parent.git

进入目录,发现子项目的文件夹是空的,初始化
git submodule init

更新,就能更新到文件,但是文件版本是网页上@的版本
git submodule update

拉取所有子项目最新内容:
git submodule update --remote

只更新一个
git submodule udpate --remote son-a

提交
git commit -am "update all"
git push

git

相关推荐