1、子库与父库
git关于子模块的官方文档链接:https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97
1.1 使用场景
某个工作中的项目需要包含并使用另一个项目。 也许是第三方库,或者你独立开发的,用于多个父项目的库。想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。
1.2 基本关系
首先明确,父项目和子项目没有实际关系,他们就是各自完全独立的两个git仓库而已。只是父项目中需要用到子项目。所以父项目和子项目的管理是分开进行的,即他们的代码拉取和提交都要分别进行。
默认情况下,父模块会将子项目放到一个与子仓库同名的目录中,可以在父项目中查看和修改子项目文件。每次更新子项目代码,子项目就会产生一个新的版本号。父项目中会记录所用子项目的版本号,如果子项目更新了版本号,而父项目不重新获取新版本的子项目,父项目就还是使用的旧版本的子项目代码。
2、基本操作
2.1 在父项目中修改并提交子项目代码
子项目中有三种状态,一是以版本编号命名的游离态,二是主分支master,三是自己创建的分支。一般是在自己的分支进行修改。
//先cd到子项目的目录下,然后右键git bash here,执行以下语句:
git checkout <分支名>
git add .
git commit -m "说明信息"
git push origin <远程分支名>
可以看到,其操作流程是和普通项目的提交一样的。
2.2 在父项目中更新子项目修改
在父项目中执行以下命令:
git submodule update --init //初始化版本
git submodule update --remote //更新到最新版本
2.3 在父项目中提交子项目版本
git submodule update --init
git submodule update --remote
git add 子项目所在文件夹
git commit -m "说明信息"
git push
这部分操作是为了提交父项目中子项目的版本号