首页/开发/Git 与协作速查/git submodule add 引入子模块
进阶与大仓实践69 条

git submodule add 引入子模块

把外部仓库以固定提交的形式嵌入当前仓库:父仓库只记录子模块的 URL、路径与提交指针,子模块内容单独克隆。

Git 与协作速查开发更新于 2026-10-12
语法git submodule add <仓库URL> [<路径>]
产物.gitmodules 与 gitlink(子模块指针)
克隆建议git clone --recurse-submodules 一次拉全

常用示例

常用示例
git submodule add https://example.com/libs/common.git vendor/common
git commit -m 'chore: 引入 common 子模块'
git clone --recurse-submodules https://example.com/app.git
父仓库记录的是一次具体提交,子模块上游更新不会自动进入父仓库,需要显式更新指针。

易错点

  • 子模块 URL 变更后旧克隆不会自动跟随,需同步 .gitmodules 并执行 submodule sync
  • 提交时只看到指针变化,评审要同时核对子模块内提交内容是否已推送

数据来源与参考

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