- 添加子模块
cd D:\workspace # 进入工程路径,或直接工程路径下打开Git Bash
git submodule add http://.../.../xxx.git xxx # xxx为子模块相对路径
- 克隆子模块
git submodule init xxx # 初始化
git submodule update # 更新子模块
- 子模块更新
git submodule update --init --recursive
- 修改提交子模块代码
cd D:\workspace # 进入工程路径,或直接工程路径下打开Git Bash
cd xxx # xxx为子模块相对路径
git checkout master # 更新子模块代码,注意更新后会还原本地的代码,修改会丢失,请先更新后修改代码
git commit -a -m "commit submodule" # commit子模块代码
git push # 提交子模块代码到远程仓库
cd .. # 回到工程路径下
git add xxx # 添加子模块
git commit -m "Updated submodule" # 在父工程更新子模块
git push # 将子模块的更新提交的远程父工程
- 删除子模块
cd D:\workspace # 进入工程路径,或直接工程路径下打开Git Bash
rm -rf xxx # xxx为子模块目录,删除子模块目录及源码
vi .gitmodules # 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config # 删除配置项中子模块相关条目
rm .git/module/* # 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
git rm --cached xxx # xxx为子模块名称
# 若要替换新的子模块,可重新添加、初始化、克隆新的子模块代码
git commit -m "Delete submodule" # 在父工程删除子模块
git push # 将子模块的删除提交的远程父工程