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?

Réponses:


141

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

git submodule update --init

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.