首页/开发/Git 与协作速查/git submodule deinit 反初始化
进阶与大仓实践69 条

git submodule deinit 反初始化

移除子模块的工作区内容并清理 .git/config 中的配置(保留 .gitmodules 与 gitlink 记录),常用于临时停用某子模块或为删除做准备。

Git 与协作速查开发更新于 2026-10-12
语法git submodule deinit [-f] <路径>
效果工作区清空、配置移除,父仓库记录不变
恢复git submodule update --init <路径>

常用示例

常用示例
git submodule deinit vendor/common
git status --short
# 需要时恢复
git submodule update --init vendor/common
deinit 是可逆的轻量操作;要彻底移除还需 git rm 与清理 .git/modules(见移除条目)。

易错点

  • deinit 不删除 .git/modules/<name> 的本地仓库,重复添加同名子模块时可能带出旧配置
  • 误 deinit 后构建目录缺失,重新 update 即可恢复,不要手工改 .gitmodules

数据来源与参考

  • Git 官方文档:git-submodule(deinit)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌