Git dispose d’une fonctionnalité de sous modules très intéressante quand il s’agit de relier plusieurs projets entre eux. Cela permet ainsi de relier un répertoire à un autre repository git, par exemple pour une librairie C/C++ à intégrer en statique dans un projet principal.
L’intégration du sous module est assez simple en revanche la suppression des traces du sous module n’est pas forcément triviale, git ne disposant pas d’une commande git submodule rm .
Voici donc la solution, pour un sous module installé dans le répertoire lib/custom_submodule.
git submodule deinit lib/custom_submodule
git rm lib/custom_submodule
rm -Rf .git/modules/lib/custom_submodule
Vous allez ici supprimer le lien vers le submodule du repository et ses références dans le repository local.
Si vous souhaitez intégrer nativement un sous module, copiez au préalable le répertoire lib/custom_submodule et après le git rm, replacez le à l’endroit initial puis ajoutez les fichiers au repository avec git add