Gibt es eine Möglichkeit, das parent-Commit tatsächlich auszuchecken, um die SHA-1-Commit-ID eines Submoduls basierend auf einer Commit-ID im übergeordneten Klon zu ermitteln? Ich weiß, dass ich den derzeit verbundenen SHA-1 mit 'git Submodul' finden kann.Wie kann ich die zugehörige Commit-ID eines Git-Submoduls aus einem früheren Commit im Elternklon erhalten?
Hier ist ein Beispiel: Ich habe einen Klon mit einem einzigen Submodul 'foo', das sich im letzten Monat mehrmals geändert hat. Ich habe ein Tag in dem Eltern-Klon, der ein paar Wochen alt ist, genannt "released-1.2.3". Ich möchte herausfinden, was die zugehörige SHA-1 von 'foo' für dieses getaggte Commit war. Ich könnte einfach 'released-1.2.3' auschecken und git-submodule verwenden, um zu sehen, aber ich frage mich, ob es einen Weg gibt, dies zu tun, ohne den Arbeitsbaum zu beeinflussen, da ich ihn skripten möchte.
Ich möchte dies tun, weil ich ein Skript erstellen will, um 'Diff' auf alle Änderungen innerhalb eines Submoduls zwischen zwei Commits innerhalb des übergeordneten Repository zu machen - dh "sagen Sie mir, welche Dateien innerhalb des Submoduls 'foo' zwischen geändert diese beiden Commits im Elternteil. "
Ich denke, das ist die Antwort, nach der ich suche - das scheint den Hash des Submoduls für das angegebene Eltern-Commit zurückzugeben. Vielen Dank. Auch, Klempner Kommentar notiert - danke. – meowsqueak
Um Submodule mit ihren Hashes bei beliebigem Commit zu entdecken: 'git ls-tree - Vollbaum -r commit | grep^160000'. Das Grep ist für den Modus, der für Submodulverknüpfungen verwandt wird. –
@ S.ChristofferEliesen, fügen Sie -r hinzu, um alle Submodule zu finden, nicht nur die in ./ –