git子模块的修改和更新操作

git子模块的使用

日常踩坑记录

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

这部分操作是为了提交父项目中子项目的版本号

你可能感兴趣的:(git,子模块)