首页/开发/Git 与协作速查/git submodule absorbgitdirs 收纳目录
进阶与大仓实践69 条

git submodule absorbgitdirs 收纳目录

把子模块目录内的 .git(文件或目录)迁移进父仓库的 .git/modules 统一管理,保持子模块目录干净、便于统一备份与迁移。

Git 与协作速查开发更新于 2026-10-12
用途把子模块的 git 元数据收纳到父仓库
执行git submodule absorbgitdirs [<路径>]
背景新版 Git 添加子模块时默认已这样处理

常用示例

常用示例
git submodule absorbgitdirs
git submodule status
ls -a vendor/common | head
从旧版本 Git 迁移的仓库或手工创建过子模块时常用;收纳后子模块目录里只留一个 .git 引用文件。

易错点

  • 收纳不改变子模块内容与提交,操作后仍需正常 update 才能得到工作区文件
  • 多工作区(worktree)场景下路径依赖更复杂,先在小规模仓库验证

数据来源与参考

  • Git 官方文档:git-submodule(absorbgitdirs)
  • Git 2.12 Release Notes(默认行为调整)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌