git子项目submodule使用

父项目不会记录子项目文件变动 只记录子项目当前commit id

克隆含有子模块项目

  • clone父项目 初始化submodule 更新submodule
git clone <repository> 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

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

你可能感兴趣的:(git)