https://stackoverflow.com/a/16162000/339302
# 0.
mv a/submodule a/submodule_tmp
#1.
git submodule deinit -f -- a/submodule
#2.
rm -rf .git/modules/a/submodule
#3.
git rm -f a/submodule
# Note: a/submodule (no trailing slash)
# or, if you want to leave it in your working tree and have done step 0
# 3.
git rm --cached a/submodule
# 3bis
mv a/submodule_tmp a/submodule
https://stackoverflow.com/a/1260982/339302
- Delete the relevant section from the
.gitmodules
file. - Stage the
.gitmodules
changesgit add .gitmodules
- Delete the relevant section from
.git/config
. - Run
git rm --cached path_to_submodule
(no trailing slash) - Run
rm -rf .git/modules/path_to_submodule
(this step is no longer needed due to the 4th step) - Commit
git commit -m "Removed submodule <name>"
- Delete the now untracked submodule files
rm -rf path_to_submodule