Dove memorizza Git SHA1 del commit per un sottomodulo?


141

So che quando aggiungi un sottomodulo a un repository git, tiene traccia di un particolare commit di quel sottomodulo a cui fa riferimento sha1.

Sto cercando di trovare dove è memorizzato questo valore sha1.

I file .gitmodulese .git/configmostrano solo i percorsi per il sottomodulo, ma non lo sha1 del commit.

Il riferimento git-submodule (1) parla solo di una gitlinkvoce e il riferimento gitmodules (5) non dice nulla a riguardo.


Risposte:


167

È memorizzato direttamente nel database degli oggetti di Git. L'oggetto albero per la directory in cui risiede il sottomodulo avrà una voce per il commit del sottomodulo (questo è il cosiddetto "gitlink").

Prova a farlo git ls-tree master <path-to-directory-containing-submodule>(o solo git ls-tree masterse il sottomodulo risiede nella directory di livello superiore).


14
Sì. Vedo dove si trova ora. E corrisponde all'ID di git submodule status. Grazie.
Abizern,

7
dove vengono archiviati durante un'unione e il sottomodulo è in conflitto?
Adam Dymitruk,

@AdamDymitruk, hai trovato la risposta?
kgadek,

1
Perché non pubblicare una nuova domanda, gente? :-)
Ivan Vučica il

3
C'è un modo per cambiare questo ID di commit in modo che punti a qualcos'altro senza aggiornare l'albero di lavoro?
CMCDragonkai
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.