git子项目submodule使用

父项目不会记录子项目文件变动 只记录子项目当前commit id
克隆含有子模块项目
  • clone父项目 初始化submodule 更新submodule
git clone project cd project git submodule init git submodule update# git submodule init和git submodule update的组合 git submodule update --init # 初始化并克隆嵌套子模块 git submodule update --init --recursive

  • 递归克隆 git clone --recursive
添加子模块
git submodule add
删除子模块
  1. 删除子项目目录
  2. 删除.gitsubmodule中相关部分
  3. 删除.git/config中相关部分
  4. 删除.git/modules中相关部分
rm -rf module vi .gitmodules vi .git/config rm -rf .git/modules# 删除子模块目录后自动删除'.gitmodules'中相关部分 git rm module

【git子项目submodule使用】执行完成后 再执行添加子模块命令 如若报错'leetcode' already exists in the index
则执行 git add . 原因是已删除文件未添加到暂存区
更新子模块
git submodule update

    推荐阅读