index - git submodules commands
Retrospectivamente add--recursive a un git repo (4)
Si haces git clone
con --recursive
, puedes obtener todos los submódulos de git también.
Si olvidé agregar esta bandera mágica al clonar, como puede suceder, ¿cómo puedo obtener submódulos?
Además, ¿cómo puedo configurar el indicador recursivo como predeterminado para clones futuros?
Desde la raíz de su repositorio:
$ git submodule update --init --recursive
Eso actualizará todos y cada uno de los submódulos registrados, inicializándolos si es necesario con el valor que se encuentra en el archivo .gitmodules, y también recurrirá en submódulos complejos (con submódulos propios) e inicializarlos y actualizarlos también.
La manera más fácil que conozco para hacer la clonación de forma recursiva es que el predeterminado sea sombrear
git clone
con un alias$ git config --global alias.clone = ''clone --recursive''
En cuanto a agregar opciones siempre, creo que ese es el método idiomático.
IIRC, git submodule init
, git submodule update
Desafortunadamente, no veo una opción para habilitar recursivo por defecto, sin embargo.
Parece que no puede anular "clonar" con alias "clonar", por lo que es un nuevo alias (solución de Abizern) o "--recursivo".
Puedes hacerlo con esto después de un simple clon de alto nivel:
git submodule update --init --recursive
No recomendaría que el clon lo haga de forma predeterminada. La forma correcta de hacerlo si usa los submódulos agresivamente para el desarrollo y no solo vincula a libs de OSS de terceros en github que puede actualizar una vez en una luna azul, es usar git slave o subtree .
Espero que esto ayude.