Git 2.23 (Q3 2019): si desea clonar y actualizar los submódulos a su última revisión:
git clone --recurse-submodules --remote-submodules
Si solo desea clonarlos en su SHA1 grabado:
git clone --recurse-submodules
Vea abajo.
Respuesta original 2010
Como joschi menciona en los comentarios, git submodule
ahora admite la --recursive
opción (Git1.6.5 y más).
Si --recursive
se especifica, este comando volverá a aparecer en los submódulos registrados y actualizará los submódulos anidados.
Consulte Trabajar con submódulos git de forma recursiva para la parte init.
Ver git submodule
explicado para más.
Con la versión 1.6.5 de git y posteriores, puede hacer esto automáticamente clonando el superproyecto con la –-recursive
opción:
git clone --recursive git://github.com/mysociety/whatdotheyknow.git
Actualización 2016, con git 2.8: consulte " ¿Cómo acelerar / paralelizar las descargas de submódulos git usando git clone --recursive
? "
Puede iniciar la recuperación del submódulo utilizando múltiples subprocesos, en paralelo.
Por instancias:
git fetch --recurse-submodules -j2
¡Aún mejor, con Git 2.23 (Q3 2019), puede clonar y pagar el submódulo a su rama de seguimiento en un solo comando!
Ver commit 4c69101 (19 de mayo de 2019) por Ben Avison ( bavison
) .
(Fusionada por Junio C Hamano - gitster
- en commit 9476094 , 17 jun 2019)
clone
: agregar --remote-submodules
bandera
Cuando se usaba git clone --recurse-submodules
anteriormente no había forma de pasar un--remote
interruptor al git submodule update
comando implícito para cualquier caso de uso en el que desea que los submódulos se verifiquen en su rama de seguimiento remoto en lugar de con el SHA-1 registrado en el superproyecto.
Este parche rectifica esta situación.
En realidad pasa --no-fetch
agit submodule update
así con el argumento de que el submódulo apenas ha sido clonado, por lo que ir a buscar desde el control remoto de nuevo sólo sirve para retrasar las cosas.
Eso significa:
--[no-]remote-submodules:
Todos los submódulos que se clonan utilizarán el estado de la rama de seguimiento remoto del submódulo para actualizar el submódulo, en lugar del SHA-1 registrado del superproyecto. Equivalente a pasar --remote
a git submodule update
.
git clone --recurse-submodules --remote-submodules
(Q3 2019 Git 2.23): clonará y actualizará los submódulos en un comando. Vea mi respuesta editada a continuación .