第6章:子模块

使用场景

当我们现在项目中使用另一个项目,比如一个公用封装库,或者一个第三方库。这时候可以使用子模块的方式。

我们自身项目在版本开发的时候,就可以随时更新子模块,不用再多操心了。

子模块的添加

git submodule add <url> <path>

其中,url为子模块的路径,path为该子模块存储的目录路径。

执行成功后,会看到项目中新增了一个.gitmodules文件,并新增了一个目录(即path指定的目录)。

再用git commit提交,完成子模块的添加。

注: .gitmodules是一个很重要的文件,他的显式存在,可以告诉使用者本项目存在子模块及其信息; 可以有多个子模块,会以列表的形式保存在.gitmodules文件中;

子模块的使用

克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:

git submodule init
git submodule update

或:

git submodule update --init --recursive

执行后,子模块目录下就有了源码,再执行相应的makefile即可。

子模块的更新

子模块只能通过手动更新。

在子模块目录下,可以执行git pull更新,可以执行git log查看日志,都是我们已经熟悉的常规操作。

在子模块目录下,完成更新操作后,后返回到项目目录,可以看到子模块有待提交的更新,使用git add,提交即可。

删除子模块

有时需要替换子模块或者不需要了,就要删除原有的子模块。

删除子模块的步骤如下:

rm -rf 子模块目录 删除子模块目录及源码 vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目 vi .git/config 删除配置项中子模块相关条目 rm .git/module/* 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可 执行完成后,再执行添加子模块命令即可,如果仍然报错,执行如下:

git rm --cached 子模块名称

完成删除后,提交到仓库即可。

© kktoo.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-10-20 11:08:19

results matching ""

    No results matching ""