1、添加一个子模块
git submodule add 子模块地址 自定义到当前工程的路径
git commit
git push
2、克隆/更新带子模块的工程
2.1、方法一:
git clone 工程地址, 进入工程后
git submodule init (init 操作只需要在刚clone下来时执行一下就行了,以后就不需要执行了)
git submodule update
2.2、方法二:
git clone 工程地址 --recursive
2.3、注意:上述两种方法只能更新父工程的提交时的状态,如果把所有子模块都更新到最新的状态需要再执行下述命令
git submodule update --remote --merge
2.4、问题来了,那么经过2.3后,还想保存此时的状态怎么办
git status 后会发现对应改动的子模块,之后
git add 最新的子模块即可
git commit
git pull
2.5、更新包含子模块的工程
git pull
git submodule update
3、批量操作
git submodule foreach + git命令即可
例如 批量切换所有子模块到 master , git submodule foreach git checkout master