Ho un repository git con più sottomoduli. Uno di questi sottomoduli ha più sottomoduli di sua proprietà. Tutto quello che sto cercando di fare è controllare un vecchio commit sul master repo e farlo controllare i commit appropriati da tutti i sottomoduli per ottenere lo stato corretto del codice in quel momento.Come eseguire il checkout del vecchio commit git inclusi tutti i sottomoduli in modo ricorsivo?
So che git contiene le informazioni necessarie poiché il comando ls-tree
può dirmi su quale commit è stato attivato ciascun sottomodulo. Tuttavia, devo controllare manualmente ciascuno di essi, il che richiede molto tempo.
Sto cercando qualcosa come git checkout --recursive
ma un tale comando non sembra esistere.
Esiste comunque?
Nota: 'git checkout --recurse-submodules' esiste al giorno d'oggi (2017). Ma solo il prossimo Git 2.14 lo farà funzionare correttamente. Vedi [la mia risposta sotto] (https://stackoverflow.com/a/44249558/6309). – VonC