A partire da Git 1.7.5 dovrebbe aggiornare automaticamente i sottomoduli per impostazione predefinita come si desidera.
[EDIT: per i commenti: il nuovo 1.7.5 comportamento è automaticamente prendere l'ultima impegna per sottomoduli, ma non -aggiornamento loro (nel senso git submodule update
). Quindi le informazioni in questa risposta sono rilevanti come sfondo, ma non è una risposta completa di per sé. Hai ancora bisogno di un alias per estrarre e aggiornare i sottomoduli in un unico comando.]
Il comportamento predefinito, "su richiesta", consiste nell'aggiornare i sottomoduli ogni volta che recuperi un commit che aggiorna il commit del sottomodulo, e questo commit non è già localizzato nel tuo clone locale.
Puoi anche averlo aggiornato su ogni fetch o mai (comportamento pre-1.7.5 presumo).
L'opzione di configurazione per modificare questo comportamento è fetch.recurseSubmodules
.
Questa opzione può essere impostata su un valore booleano o su on-demand
.
Impostandolo su un valore booleano, il comportamento di fetch
e pull
ricorre incondizionatamente ai sottomoduli se impostato su true o non recurse del tutto quando è impostato su false.
Quando è impostato su on-demand
(il valore predefinito), fetch
e pull
sarà ricorsivamente in un modulo popolata solo quando il suo SuperProject recupera un commit che aggiorna il riferimento del modulo.
See:
per ulteriori informazioni.
git fetch --recurse-submodules[=yes|on-demand|no]
fonte
2011-04-27 10:53:33
Correlato: http://stackoverflow.com/questions/1899792/why-is-git-submodule-update-not-automatic – philfreo
Perché un alias git è preferibile a un alias di shell? – wnoise
Gli alias git sono belli perché incapsulano il comando nello spazio dei nomi "git". Puoi anche chiedere perché tutti i comandi git iniziano con "git" invece di avere i loro nomi. –