Wie checkout alten git commit einschließlich aller Teilgebiete rekursiv?

Habe ich ein git-repo mit mehrere Submodule. Einer von denen hat mehrere Submodule Submodule von selbst. Alle ich bin auf der Suche zu tun, ist check-out ein altes commit auf dem master-repo-und haben Sie der Kasse die entsprechenden übertragungen aus aller Submodule, um die richtigen Staat, der den code damals.

Ich weiß, dass git enthält die notwendigen Informationen, wie den ls-tree Befehl kann mir sagen, welcher commit jedes Submodul war. Jedoch habe ich manuell überprüfen, jeden, der viel Zeit kostet.

Ich bin auf der Suche nach so etwas wie git checkout --recursive aber einen solchen Befehl scheint nicht zu existieren.

Gibt es trotzdem, dies zu tun?

  • Hinweis: git checkout --recurse-submodules tatsächlich existiert heute (2017). Aber nur die kommende Git 2,14 damit es richtig funktioniert. Siehe meine Antwort unten.
InformationsquelleAutor Ben Baron | 2013-02-27
Schreibe einen Kommentar