Ich habe ein Git Repo mit mehreren Submodulen. Eines dieser Submodule hat mehrere eigene Submodule. Alles, was ich tun möchte, ist eine alte Commit auf dem Master-Repo zu überprüfen und es die entsprechenden Commits von allen Submodulen auschecken, um den richtigen Status des Codes zu diesem Zeitpunkt zu erhalten.Wie alte git commit einschließlich aller Untermodule rekursiv auschecken?
Ich weiß, dass git enthält die notwendigen Informationen wie der ls-tree
Befehl kann mir sagen, welche Commit jedes Submodul war. Allerdings muss ich jeden manuell auschecken, was schmerzhaft zeitaufwendig ist.
Ich bin auf der Suche nach etwas wie git checkout --recursive
, aber ein solcher Befehl scheint nicht zu existieren.
Gibt es trotzdem etwas zu tun?
Hinweis: 'git checkout --recurse-submodules' existiert heute tatsächlich (2017). Aber nur das kommende Git 2.14 wird es richtig funktionieren lassen. Siehe [meine Antwort unten] (https://stackoverflow.com/a/44249558/6309). – VonC