git 清理submodule
Git 中清理 submodule(子模块)分几个层次:从当前工作区移除子模块引用、配置文件清理、.git/modules
清理等。以下是彻底清理一个子模块的完整步骤:
✅ 假设子模块路径为:path/to/submodule
🔧 第一步:移除 .gitmodules
中的子模块信息
git config -f .gitmodules --remove-section submodule.path/to/submodule
或者手动编辑 .gitmodules
文件,删除类似内容:
[submodule "path/to/submodule"]path = path/to/submoduleurl = <some-url>
🔧 第二步:移除 .git/config
中的子模块配置
git config --remove-section submodule.path/to/submodule
🔧 第三步:删除子模块目录(工作区中的文件夹)
rm -rf path/to/submodule
🔧 第四步:从 git index 中移除(不影响其它文件)
git rm --cached path/to/submodule
🔧 第五步:删除 .git/modules
中存储的子模块信息
rm -rf .git/modules/path/to/submodule
🔁 第六步:提交更改
git commit -m "Remove submodule path/to/submodule"
✅ 最终效果
执行完以上操作后,Git 仓库中将不会再包含任何关于 path/to/submodule
的信息。整个子模块被彻底清理。