Git und Log Reihenfolge

Ich habe versucht, aus der Ausgabe von "git log" eine lineare Reihenfolge zu erstellen, aber alle meine Versuche sind fehlgeschlagen. Was ich tun muss, ist das Zuordnen eines Commits zu der nächsten Version, die dieses Commit enthält. Ich kann nicht rennen

git tag --contains <commit>

für jedes Commit, da unser Repository eine extrem große Anzahl von Commits enthält (mehr als 300.000).

Zuerst versuchte ich es mit

git log --pretty=format:"%ct%H" | sort --key=1,10 

um eine lineare Reihenfolge basierend auf der Festschreibungszeit zu erhalten. Dies scheint jedoch kein 100% genaues Ergebnis zu liefern. Dies führt zu meiner ersten Frage:

F1) Wie speichert git Festschreibungszeiten, wenn Festschreibungen in das Haupt-Repository verschoben werden? Speichert es die aktuelle Maschinenzeit für jedes Commit in UTC?

Ich habe mir auch "git help log" angesehen, und in der Dokumentation heißt es, dass git log die Commits standardmäßig in chronologischer Reihenfolge auflistet. In meinem Projekt habe ich überprüft, ob ein Fehler aufgetreten ist, aber soweit ich das beurteilen kann, ist der Code korrekt und die von git log angegebene chronologische Reihenfolge ist keine lineare Reihenfolge. Schließlich ist meine Frage?

F2) Wie kann man eine lineare Reihenfolge von "git log" erhalten, da git keine Revisionsnummern speichert?

Vielen Dank :)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage