Liste des frustrations
Les submodules sont puissants mais font trébucher les nouveaux utilisateurs à répétition. Cette page catalogue les échecs les plus fréquents et les recettes qui les corrigent.
Répertoire de submodule vide
git submodule update --init --recursive
Éditions en HEAD détaché perdues
cd third_party/lib
git reflog
git checkout -b rescue HEAD@{1}
URL changée upstream
git submodule sync --recursive
git submodule update --init --recursive
Supprimer un submodule
git submodule deinit -f third_party/lib
git rm -f third_party/lib
rm -rf .git/modules/third_party/lib
git commit -m "Supprimer submodule lib"
Contenu modifié mais pas de diff
git submodule update --recursive
# ou
git add third_party/lib && git commit -m "Bump lib"
L'ordre du push importe
git config --global push.recurseSubmodules on-demand
Submodules shallow
git submodule update --init --recursive --depth 1
Erreurs courantes
Traiter les submodules comme des sous-répertoires normaux — ils ne le sont pas, chaque commande Git s'arrête à la frontière à moins que vous passiez --recurse-submodules.