Extraire les sous-modules git après le clonage du projet à partir de GitHub

90

J'ai un projet qui contient des sous-modules. Tout fonctionne bien sur la machine de développement. J'ai commis un .gitmodulesdossier et tiré sur la production. Cependant, il ne tire pas de sous-modules.

Si je vais dans les répertoires de sous-modules et que j'appelle git pull, rien ne se passe.

Quelle est la bonne façon d'extraire ces sous-modules dans le nouveau projet?

hsz
la source

Réponses:

141

À partir de la racine du dépôt, exécutez simplement:

git submodule update --init
Matt Cooper
la source
8
Je pense que cela mettra à jour vos dépendances. Je pense que S.Russel avait la bonne commande dans son commentaire ci-dessous:git pull --recurse-submodules
Spencer
37

Si vous avez besoin d'extraire des éléments pour les sous-modules dans vos référentiels de sous-modules, utilisez

git pull --recurse-submodules

Mais cela ne récupérera pas les commits appropriés (ceux vers lesquels pointe votre référentiel maître) dans les sous-modules

Pour vérifier les commits appropriés dans vos sous-modules, vous devez les mettre à jour après avoir tiré en utilisant

git submodule update --recursive
S. Rasel
la source
1
git submodule update --recursivec'est ce dont j'avais besoin après le premier git cloneing mais en oubliant de --recursivele faire du premier coup. Merci!
mbb
8
Cela ne semble pas fonctionner pour moi. Les sous-modules restent vides.
CodeMonkey
@CodeMonkey pareil pour moi.
linkerx
6
il est peut-être trop tard pour la fête, mais pour quiconque s'est retrouvé ici: git submodule update --init --recursiverésolvez mon problème
Iglesk
21

S'il y a des sous-modules imbriqués, vous devrez utiliser:

git submodule update --init --recursive
Iglesk
la source