2010-01-02 15 views
10

Tengo un truco de submódulo de git (¿una ilusión?) Y estoy llegando a preguntas más específicas, que es una buena señal ...git actualización de submódulo necesaria inicialmente?

He intentado encontrar la revisión de la cual submódulo al que se refiere el superproyecto, en .gitmodules y .git/config, pero no se menciona nada allí ...
El escenario es que estoy cambiando los submódulos en sus ubicaciones raíz (de donde se importan), y luego jalándolos donde 're' submodulé '...
Más allá de comprometerme desde el superproyecto para incorporar esos cambios en el repositorio de superproyectos, ¿también necesito hacer "git update" para registrar los nuevos commits de submódulos arrastrados?

Básicamente la pregunta es:

necesito para "git submodule update" sólo cuando el primer clon SuperProject, o después de cada tirando del submódulo (de su propio repo)?

Gracias

+0

Perdón por la respuesta tardía, no vi su nueva pregunta después de la anterior (http://stackoverflow.com/questions/1979167) – VonC

Respuesta

15

Como se ha mencionado en mi respuesta anterior a git submodule update, que comando comprueba la versión específica del proyecto, la base de su archivo .gitmodules.

El GitPro page does insist:

Este es un punto importante de cartuchos: se graba como la exacta comprometen están.

Se puede ver que practican se hace referencia mediante la ejecución dentro de la "super proyecto" (el que hace referencia a uno o varios submódulos):

  • git submodule status (excepto si se hizo alguna comprometen directamente dentro de esa sub-módulo, thinat caso se mostrará una "+" frente a la SHA-1 del HEAD de cualquier submódulo que ha avanzado desde el SHA-1 almacenada en el SuperProject) o
  • git ls-files --stage en busca de la entrada en el modo de "160000", una entrada especial en el Soldado americano índice t.

Eso significa que, cada vez que se ejecuta un comando git en el "super proyecto" que podría modificar esa submódulo cometer SHA1, se necesita un "git submodule update".

¿Necesito "actualizar git submódulos" solo cuando primero clono el superproyecto, o después de cada extracción del submódulo (desde su propio repositorio)?

Sí, tienes que hacer esto cada vez que hagas un cambio de submódulo en el proyecto principal.
Esto se debe a que está haciendo referencia a la confirmación exacta en la que se encuentra el repositorio original del submódulo (como se dijo anteriormente), y cuando saca ese repositorio, está efectivamente modificando esa confirmación.

Cuestiones relacionadas