2011-01-05 16 views
15

Estoy trabajando en un proyecto en un repositorio git (A) que incluye otro repositorio git (B), que a su vez incluye un tercer repositorio git (C). En A, añadí B a través de:¿Cómo agregar el submódulo git que contiene otro submódulo?

git submodule add https://github.com/blt04/sfDoctrine2Plugin.git plugins/sfDoctrine2Plugin 

Click here, y se puede ver en las referencias B C: https://github.com/doctrine/doctrine2

Después de hacer mi git submódulo añadir, mi carpeta de plugins/sfDoctrine2Plugin/lib/vendor/doctrine (debe contener C) está vacía. Intenté hacer un git submodule update --recursive según this StackOverflow answer, pero aún así no importé los archivos a esa ruta. No sé qué hacer aquí.

+1

También podría volver a clonar el repositorio usando "git clone --recursive " –

Respuesta

38

Tienes que hacer git submodule update --init --recursive. El problema aquí es que el submódulo C nunca se inicializa en primer lugar.

+1

Guau, eso funcionó. No sé por qué Git no es lo suficientemente inteligente como para hacer eso en primer lugar. Oh bien, gracias! –

+1

git asume que si no iniciaste el submódulo, es porque no lo deseas. Esto es confuso para los recién llegados, pero puede ser extremadamente útil en casos donde el submódulo es opcional. –

+2

Siempre me ha sorprendido que no puedas hacer lo siguiente: git submodule add --recursive . –

Cuestiones relacionadas