submodulos repositorio origin actualizar git version-control

repositorio - git push origin master



Git repositorio dentro de otro repositorio git (2)

Tengo la siguiente estructura de directorios:

  • g1 /
    • .git
    • un
    • segundo
    • do/
      • .git
      • re
      • mi

Como puede ver, tengo el repositorio "c" dentro del repositorio "g1". Cuando uso el siguiente comando:

git clone g1 g2

Solo obtengo la siguiente estructura de directorios:

  • g1 /
    • .git
    • un
    • segundo
    • do/

El directorio "c" permanece vacío. ¿Algunas ideas?


Git 2.5+ (Q2 2015) será un poco más preciso en la forma en que presenta el submódulo.
Dado que un submódulo se registra como un gitlink ( una entrada especial en el índice ), eso explica por qué '' c '' está vacío cuando se clona el repositorio principal.
Véase también " git submodule desprotege el mismo commit ".
Necesita una git submodule update --init para rellenar '' c ''.

Eso ahora está más claramente documentado.

Ver commit ec48a76 (27 de mayo de 2015) por Stefan Beller ( stefanbeller ) .
(Fusionada por Junio ​​C Hamano - gitster - in commit 7df5c97 , 11 de junio de 2015)

submodule doc: reordenar párrafos introductorios

Es mejor comenzar la página de manual con una descripción de lo que realmente son los submódulos, en lugar de decir lo que no son.

La página de manual de git submodule ahora (junio de 2015) comienza con:

Un submódulo le permite mantener otro repositorio Git en un subdirectorio de su repositorio.
El otro repositorio tiene su propia historia, que no interfiere con la historia del repositorio actual.
Esto se puede usar para tener dependencias externas, como bibliotecas de terceros, por ejemplo.

Sin embargo, al clonar o extraer un repositorio que contiene submódulos, estos no se verán por defecto; los subcomandos '' init '' y '' update '' mantendrán los submódulos revisados ​​y en la revisión apropiada en su árbol de trabajo .


Submodules (discutidos en el Libro Pro Git ), ayudan a administrar los repositorios anidados dentro de un repositorio principal:

Los submódulos permiten que los repositorios externos se incrusten dentro de un subdirectorio dedicado del árbol de origen, siempre apuntando a un compromiso en particular.

No deben confundirse con controles remotos, que están destinados principalmente a las sucursales del mismo proyecto; los submódulos están diseñados para los diferentes proyectos que le gustaría que formen parte de su árbol fuente, mientras que el historial de los dos proyectos sigue siendo completamente independiente y no puede modificar el contenido del submódulo desde el proyecto principal.

Los submódulos mantienen su propia identidad; el soporte de submódulos simplemente almacena la ubicación del repositorio de submódulos y la ID de confirmación, de modo que otros desarrolladores que clonan el superproyecto pueden clonar fácilmente todos los submódulos en la misma revisión.