2010-01-02 12 views
10

Mi sto prendendo in giro con il sottomodulo git (pio desiderio?) E sto arrivando con domande più specifiche, che è un buon segno ...L'aggiornamento del modulo git è necessario solo inizialmente?

Ho provato a trovare la quale revisione del sottomodulo si riferisce al sottoprogetto in .gitmodules e .git/config, ma non viene menzionato nulla lì ...
Lo scenario è che sto modificando i sottomoduli nelle posizioni di root (da cui vengono importati), quindi li trascinamento dove sono "re" sottomesso "...
Oltre a commettere dal superprogetto per incorporare tali modifiche nel repository di superproject, devo anche fare" git update "per registrare il nuovo submodule inserito in commit?

In sostanza la domanda è:

ho bisogno per "git submodule update" solo quando ho primo clone del SuperProject, o dopo ogni trazione del modulo (dalla propria repo)?

si

+0

Siamo spiacenti per la risposta in ritardo, non ho visto la tua nuova domanda dopo quella precedente (http://stackoverflow.com/questions/1979167) – VonC

risposta

15

Grazie Come accennato nella mia precedente risposta a git submodule update, che verrà verificato la versione specifica del progetto, di base sulla loro file di .gitmodules.

Il GitPro page does insist:

Questo è un punto importante con sottomoduli: di registrarle come l'esatto commettono sono al.

Si può vedere che impegnano si fa riferimento eseguendo nell'ambito del progetto "super" (quello fa riferimento a uno o più moduli):

  • git submodule status (tranne se avete fatto un po 'di commettere direttamente all'interno di tale modulo, thinat caso mostrerà un "+" davanti al SHA-1 della HEAD di qualsiasi modulo che ha avanzato dal SHA-1 memorizzato nel SuperProject) o
  • git ls-files --stage alla ricerca per l'ingresso in modalità "160000", una voce speciale nella Gi t indice.

Ciò significa, ogni volta che si esegue un comando git nel "super progetto", che potrebbe modificare tale modulo commettere SHA1, è necessario un "git submodule update".

ho bisogno di "git submodule update" solo quando prima clonato il superproject, o dopo ogni estrazione del sottomodulo (dal proprio repository)?

Sì, è necessario farlo ogni volta che si abbassa una modifica del sottomodulo nel progetto principale.
Questo perché si fa riferimento al commit esatto che il repository originale del sottomodulo è in (come detto sopra), e quando si tira su quel repository, si sta effettivamente modificando quel commit.

Problemi correlati