Ajouter rétrospectivement --recursive à une git repo
si vous git clone
avec --recursive
, vous pouvez obtenir tous les sous-modules git aussi.
si j'ai oublié d'ajouter ce drapeau magique lors du clonage, comme cela peut arriver, Comment puis-je maintenant aller chercher des sous-modules?
en outre, Comment puis-je définir le drapeau récursif par défaut pour les clones futurs?
4 réponses
vous pouvez le faire avec ceci après un simple clone de haut niveau:
git submodule update --init --recursive
Je ne recommande pas que clone fasse cela par défaut. La bonne façon de le faire si vous utilisez des sous-modules agressivement pour le développement et pas seulement le lien vers des tiers OSS libs sur github que vous pouvez mettre à niveau une fois dans une lune bleue, est d'utiliser esclave de git ou subtree .
Espérons que cette aide.
-
à Partir de la racine de votre repo:
$ git submodule update --init --recursive
qui mettra à jour tous les sous-modules enregistrés, en les initialisant si nécessaire à la valeur trouvée dans le .gitmodules fichier, et également de manière récursive en complexe submodules (avec submodules de leur propre) et initialiser et mettre à jour.
-
la façon la plus facile que je connaisse de faire du clonage récursif la valeur par défaut serait de shadow
git clone
avec un alias$ git config --global alias.clone = 'clone --recursive'
en ce qui concerne l'ajout d'options toujours, je pense que c'est la méthode idiomatique.
IIRC,
git submodule init
,
git submodule update
malheureusement, je ne vois pas d'option pour activer la récursive par défaut, cependant.
il semble que vous ne pouvez pas remplacer" clone "avec alias" clone", donc c'est un nouvel alias (solution D'Abizern) ou"--recursive".
est-il possible d'outrepasser la commande git par alias git?