Carpeta de submódulo Git vacía cuando se clona el repositorio

130

Tengo un repositorio alojado en https://github.com/aikiframework/json . En mi copia local, agregué un submódulo usando el comando

git submodule add [email protected]:jcubic/json-rpc.git json-rpc

Luego hice un commit y push, y los cambios aparecen en GitHub (puedo hacer clic en él). Pero cuando clono el repositorio

git clone https://github.com/aikiframework/json.git

la carpeta de submódulos json-rpc está vacía.

¿Que me estoy perdiendo aqui? ¿Me olvidé de algo? ¿Por qué está vacía esa carpeta?

jcubic
fuente

Respuestas:

200

Bien, lo encontré, necesitaba agregarlo --recursiveal clonar el repositorio.

Entonces el comando clonar termina como:

git clone https://github.com/aikiframework/json.git --recursive
jcubic
fuente
229
Sí. También puede buscar submódulos después del hecho con git submodule update --init, si ya clonó pero olvidó --recursive.
Ámbar
44
Acabo de enfrentar el problema de que hay un submódulo en la rama de desarrollo, pero aún no en la rama maestra. Cuando clonas el repositorio de git usando --recursive, no encontrará el submódulo en la rama maestra, y debes buscarlo usando el comentario de Ambers "git submodule update --init" para obtener también el subomódulo.
d4Rk
11
Si usa git submodule update --initusted tendrá que ir a cada uno de recompra y hacer git checkout masterlo contrario obtendrá error You are not currently on a branch.en git pullcuando intenta actualizar a una versión más nueva.
Noitidart
@Noitidart, ¿hay alguna forma de que no haga eso? (después de clonar el proyecto ya)
borgr
1
@Noitidart Gracias por la update --initpista. Eso ayuda cuando el clon original no tenía contenido --recursivey simplemente quería extraer los submódulos faltantes.
Jari Turkia