2016-11-10 5 views
3

Ich habe eine Liste von Commit-Hashes und muss sie chronologisch ordnen.Reihenfolge einer Liste von Git-Commits anzeigen

Ich dachte, ich git rev-list es zu tun bekommen könnte, aber es besteht auf mich alle die Commits, auch wenn ich auf der Kommandozeile ein Commit angeben zeigt.

Gibt es eine Möglichkeit, git dies zu tun oder muss ich git rev-list und grep kombinieren?

Danke!

+0

Lesen Sie dies, es wird Ihnen einige Ideen geben. http://thesimplesynthesis.com/post/how-to-sort-git-commits-by-author-date – CodeWizard

Antwort

4

Verwenden Sie die Option --no-walk. Es funktioniert auf alles basierend auf git rev-list.

+1

Insbesondere können Sie jetzt '--no-walk = sortierte' oder' --no-walk = unsortiert ', und der Standardwert ist" sortiert ". In älteren Versionen von Git ist '--no-walk' jedoch * immer * unsortiert, also Vorsicht! (Dies hat mich gebissen, als ich versuchte, es wieder in den Git 1.7ish oder 1.8ish Tagen zu verwenden.) – torek

+0

? Ich habe Ihren Kommentar zum Glauben aktualisiert, aber 8e64006, das die Option einführte, sagt, dass die 'rev-list'-basierten Befehle ihre Ausgabe sortieren (standardmäßig, jetzt), sie ist' git show' und folgt der Befehlsreihenfolge. Könntest du dich schlecht erinnern? @torek – jthill

+0

Es war ein ziemlich älteres Git. Ich musste mir die Geschichte in Git ansehen, um zu sehen, wann das behoben war. Mein Skript hatte diese vier Zeilen (Kommentar wird sie natürlich reduzieren) '# Parsen Sie die Argumente in eine Datei git rev-parse $ @> $ TF1 || exit 1 # und topo-sortiere die Argumente in einen anderen git rev-list --topo-order --no-walk --reverse $ @> $ TF2 || Ausgang 1' und es scheiterte, bis einige Git Uprev dies behoben. (Das letzte Mal, als ich dieses Skript berührte, war 2012, also trat das Problem 2012 oder früher auf.) – torek

Verwandte Themen