git项目子模块一般用在复杂的项目中,方便项目管理。今天开始学习下子模块操作
子模块创建
# 在主工程仓库中添加子依赖子模块
$ git submodule add <远程子模块仓库地址> <相对于项目的本地路径>
举个栗子:
$ git submodule add https://github.com/***/module.git module
$ more .gitmodules
[submodule "module"]
path = module
url = https://github.com/***/module.git
clone带有子模块的仓库
git submodule init
git submodule update
注意:不管是使用系统的递归克隆还是手动递归执行的初始化和更新,此时子模块的HEAD都有可能处于游离状态,需要手动切换到对应的分支
一次性执行命令可以替代init 和update
$ git submodule update --init --recursive //一次性更新。
$ git clone --recurse-submodules <远程主工程仓库地址>//直接clone的时候完成多层依赖。
注意:主工程的提交及更新并不会对子模块代码造成影响,只会影响其依赖的子模块提交版本
在更新主仓库之前 ,一定要先对子模块进行更新,否者可能会导致版本不对应。
$ git submodule update
$ git pull
子模块删除
删除子仓库 -> 删除.gitsubmodule里相关部分 -> 删除.git/config 文件里相关字段 -> 删除子仓库目录。
$ git rm --cached <本地路径>
删除会残留一些文件在.git/modudles文件夹内。
评论区