Git 子模块管理技巧

基本操作

添加子模块

git submodule add <repository-url> <path>

初始化子模块

git submodule init

更新所有子模块

git submodule update --init --recursive

高级操作

克隆包含子模块的仓库

# 方法1:分步克隆
git clone <repository-url>
git submodule init
git submodule update

# 方法2:一步完成
git clone --recursive <repository-url>

更新特定子模块

git submodule update --remote <submodule-name>

删除子模块

# 1. 取消注册子模块
git submodule deinit -f <path>

# 2. 从工作区删除子模块
rm -rf <path>

# 3. 从 .git/modules 删除子模块
rm -rf .git/modules/<path>

# 4. 从版本控制中删除子模块信息
git rm -f <path>

最佳实践

  • 在主项目中避免修改子模块的内容
  • 定期更新子模块以获取最新改动
  • 使用相对路径引用本地子模块
  • 在团队中统一子模块的版本
  • 谨慎处理子模块的分支切换