2012-01-11 3 views
6

Mi riferisco a un sottomodulo git nel mio progetto e ora devo fare riferimento a uno SHA specifico nel repository git target.Sottomoduli Git: specificare uno SHA specifico?

# .gitmodules 
[submodule "vendor/plugins/ssl_requirement"] 
    path = vendor/plugins/ssl_requirement 
    url = git://github.com/retr0h/ssl_requirement.git 

Il CSA che voglio è bc96ad96407a72a60e0542cf3b0cecc6ff9e278e.

risposta

20

I sottomoduli, per definizione, fanno sempre riferimento a SHA1 particolare nel sottoprogetto. SHA1 non è espresso nel file .gitmodules, ma viene invece espresso come la voce nell'oggetto tree che contiene il sottomodulo. Il modo in cui lo hai impostato in git è il cd nel sottomodulo, verificando lo SHA1 che vuoi, quindi lo cd torna al repository padre e confermando la tua modifica, che apparirà come un file modificato.

Quindi nel tuo caso che cosa si può fare è

cd vendor/plugins/ssl_requirement 
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e 
cd .. 
git add ssl_requirement 
# commit whenever you're ready 
+1

+1; è quasi esattamente quello che stavo scrivendo. Si noti che se il sottomodulo è stato recuperato dall'origine prima del commit, potrebbe essere necessario eseguire 'git fetch' nel sottomodulo per scaricarlo! – Cascabel

+0

Grazie, ha perfettamente senso! – Zubin