# Gestion des sous-modules
@@
## Principe
Les sous-modules sont utilisés pour **inclure** un dépôt git dans un autre dépôt.
Utile pour séparer le code dans différents dépôts.
Un **sous module** peut être ajouté à plusieurs dépôts.
Note:
- composants partagés
@@
L'ajout d'un sous module se fait via la commande suivante : git submodule add <URL> <local-path>
Un fichier .gitmodules
est créé dans le dépôt.
Se comporte comme un git clone
.
Se comporte comme un dépôt git.
Par défaut clone la branche principale du projet.
Pour se positionner sur un tag, il faut exécuter la commande git dans le dossier du sous module.
Pensez à commiter le fichier .gitmodules
.
$ cd reveal
$ git checkout 1.0.0
La mise à jour s'exécute de cette manière :
git submodule update --remote --rebase
remote : pour chercher les modifications distantes.
rebase : pour rejouter l'ordre des commits.
Pensez à commiter le fichier .submodule pour figer la nouvelle version.
Un dépôt contenant un sous-module devra l'initialiser :
git submodule init
Initialiser et mettre à jour les sous-modules d'un coup :
git submodule update --init
Les sous-modules peuvent contenir des sous modules eux-même :
git submodule update --init --recursive