Les sous-modules Git

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Comment ça vous ne connaissez pas les sous-modules (submodules) de Git ? Bien que pouvant être très pratique, ils sont souvent assez méconnus. Pourtant nous avons tous rencontré au moins une fois un cas où ils nous auraient bien rendu services.

N'avez-vous jamais eu envie d'inclure un projet tier au sein du projet sur lequel vous étiez en train de travailler ? Je ne parle pas d'une simple dépendance tierce, mais d'un module ou une bibliothèque que vous développez simultanément. Comment gérez-vous le développement des deux projets distinct qui pourtant doivent se retrouver au sein d'une même application ?

C'est un cas typique d'utilisation des sous-modules Git, car ils vont vous permettre d'inclure un autre dépôt Git au sein de votre projet actuel. Il vous sera alors possible de gérer vos commits sépérement pour chacun des dépôts.

Si vous souhaitez travailler sur une bibliothèque au sein de votre projet courant, vous pouvez initialiser un sous-module Git avec un dépôt externe au travers de la commande :

git submodule add http://url/depot.git dossier/destination

De ce fait, un nouveau dossier (dossier/destination) sera créé dans votre arborescence. Ce dernier fonctionnant comme un dépôt Git à part entière.

Vous noterez également qu'au travers de cette opération, Git a ajouté un nouveau fichier de configuration nommé .gitmodules contenant la description des sous-modules utilisés par le projet.