GIT: supprimer un submodule

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 <path>.

Voici donc la solution, pour un sous module installé dans le répertoire 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

Google Plus

2 thoughts on “GIT: supprimer un submodule

  1. Je suis un total débutant sous Git mais ma question est la suivante:
    Si je veux remonter une version antérieure qui nécessitait de compiler ce sous-module, le lien est-il complètement perdu ? Faut-il refaire le lien ?
    si c’est le cas, ça fait bien partie des trucs qui me font peur avec Git, à savoir l’altération d’historique.

    • Bonjour Fred, mes excuses pour le retard,
      un sous module est un lien vers un repository externe + 1 commit. Il suffit d’aller dans le répertoire du submodule, checkout la bonne version, retourner dans le répertoire principal et faire sa compilation. Si la version du sous module est valide, il suffit de commiter le répertoire du submodule, ce qui aura pour effet de valider le changement la version du submodule dans l’historique du projet principal.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *