Supponendo che il seguente layout del progetto: -intesa git modulo e "congelamento" in un secondo specifica commettere hash o versione
mainrepo_git
|____ .git
|____ .gitmodules
|____ proj <------- directory containing the code files for mainrepo
|____ 3rdpartysourcecode <-- directory containing upstream open source code
| |____ .git
| |____ 3rdpartyfiles
|
|____ mainrepofilesanddirectories
mainrepo_git contiene il codice sorgente sono direttamente responsabili. Ho accesso in lettura/scrittura e posso spingere e tirare direttamente a un repository git remoto che gestisco.
nidificato all'interno mainrepo_git è una directory che ho chiamato 3rdpartysourcecode. Questa directory 3rdpartysourcecode è in realtà un altro git repo (noto anche come "sottomodulo git") che punta a un repository git di terze parti open source gestito da altri sviluppatori. Ho solo accesso in lettura ad esso. Nessun accesso in scrittura.
C'è un modo per "congelare" uno specifico hash di commit del sottomodulo git in relazione a un commit effettuato nel mio repository principale?
Per esempio, se io sono in (o io tornare ad) impegnarsi a12ucak nel mio mainrepo, il mio git modulo anche viene ripristinato una versione specifica, che lego a commettere a12ucak? E quando passo a commit b349jdsak, il mio sottomodulo git viene anche ripristinato a una versione che leggo a b349jdsak?
Quindi la mia domanda è: c'è un modo per creare un collegamento tra uno specifico commit nel repository principale con un commit corrispondente nel sottomodulo git? In questo modo, quando eseguo il checkout di uno specifico commit nel repository git principale, verrà eseguito il checkout anche il corrispondente commit nel sottomodulo git.
Corretto. Vedi anche http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC