Avancé · 6 min de lecture
Les sous-modules sans larmes
Inclure un autre dépôt à une version fixe — et les commandes que tout le monde oublie.
Ce qu'est un sous-module
Ton dépôt stocke un pointeur vers un commit précis d'un autre dépôt, et son URL dans .gitmodules. Les fichiers, eux, vivent dans l'autre dépôt.
$ git submodule add https://github.com/OWNER/lib.git vendor/lib$ git commit -m "chore: add lib as submodule"
Cloner un projet qui en contient
Sans ces options, les dossiers des sous-modules sont vides.
$ git clone --recurse-submodules git@github.com:OWNER/REPO.git# already cloned:$ git submodule update --init --recursive
Mettre à jour un sous-module
Avance-le au dernier commit de sa branche, puis commite le nouveau pointeur dans ton dépôt.
$ git submodule update --remote vendor/lib$ git add vendor/lib$ git commit -m "chore: update lib"
Les alternatives
Souvent, un gestionnaire de paquets (npm, composer, pip) est plus simple. Les sous-modules brillent pour du code partagé que tu développes aussi.