首页/开发/Git 与协作速查/子模块的初始化与更新
进阶与大仓实践69 条

子模块的初始化与更新

克隆后子模块目录默认是空的:git submodule init 登记配置,git submodule update 检出父仓库记录的提交;也可一步 --init --recursive。

Git 与协作速查开发更新于 2026-10-12
初始化git submodule init(写入 .git/config)
检出指针git submodule update(默认游离 HEAD,符合父仓库记录)
递归--recursive 处理嵌套子模块

常用示例

常用示例
git submodule update --init --recursive
git submodule update --init --recursive --jobs 4
git submodule status --recursive
日常同步只需 update;如果希望跟进子模块远端分支,用 --remote(见子模块分支跟踪条目)。

易错点

  • 忘记 --recursive 时嵌套子模块目录为空,构建会以缺文件报错
  • update 后子模块处于游离状态,直接在里面提交容易丢在游离 HEAD 上,先切分支

数据来源与参考

  • Git 官方文档:git-submodule(init/update)
  • Pro Git 2nd Edition · 7.11 子模块
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌