Wie lese ich den letzten Commit-Kommentar?

401

Oft $ git -commit -m ""möchte ich während eines Commits ( ) meinen letzten Kommentar lesen, um mich daran zu erinnern, welche Fortschritte ich gemacht habe. Gibt es eine einfache Möglichkeit, direkt über die Befehlszeile auf die letzte Festschreibungsnachricht zuzugreifen? (Ich benutze Windows.)

Whamsicore
quelle
6
Wenn es sich um eine reguläre Aktion handelt, erstellen Sie ein alias(z. wherewasiB.-) für die von Ihnen gewählte Lösung / Befehlszeile. Sie können auch die Filialinformationen angeben.
Philip Oakley

Antworten:

756
git show

ist am schnellsten zu tippen, zeigt Ihnen aber auch den Unterschied.

git log -1

ist schnell und einfach.

git log -1 --pretty=%B

Wenn Sie nur die Commit-Nachricht und sonst nichts benötigen.

CB Bailey
quelle
2
Das% B-Format war das, was ich brauchte, um die Commit-Nachricht nicht einzurücken. Und ja, @Juh_, obwohl Git Gui kein Zeilenumbruch für Sie ist, ist es eine gute Idee, 80-Spalten-Text in Commit-Nachrichten zu verwenden, nicht Zeile für Absatz.
Peter Cordes
4
@Juh_ Sie können die gesamte Nachricht mit verwenden git log -1 --pretty=%B | cat, aber wie Peter sagte, sollten Sie versuchen, sie auf 80 Zeichen zu beschränken.
Ruckus T-Boom
3
@Juh_ das ist ein bisschen zu spät, aber wenn Sie möchten, dass die Commit-Nachricht Zeilenumbruch macht, catgit log -1 --pretty= | cat
leiten Sie
8
Weitere Informationen zu den prozentualen Platzhaltern finden Sie unter: kernel.org/pub/software/scm/git/docs/… (scrollen Sie nach unten zu format:<string>).
Imme
3
Wenn Sie das format:Präfix %Bwie in den Man-Dokumenten vorgeschlagen hinzufügen , werden am Ende der Ausgabe keine zusätzlichen Leerzeilen angezeigt:git log -1 --pretty=format:%B
Mariano Ruiz
84

Allgemein:

git log -n

zeigt dir das letzte n Commit-Nachrichten

Eleganter - wenn Sie einen schnellen Überblick über Ihre Commits wünschen

git log --oneline -n

Dies zeigt nur die erste Zeile der letzten n Festschreibungsnachrichten an.

Sie können dies als Git-Alias ​​oder Shell-Alias ​​mit einem kürzeren Befehl speichern. Ich habe es glogzum Beispiel in meiner Shell und kann meine letzten 10 Commit-Nachrichten mit sehen glog -10.

Abizern
quelle
23

git log -1zeigt die letzte git log -1 --onelineFestschreibungsnachricht an oder wenn nur die sha1 und die zugehörige Festschreibungsnachricht angezeigt werden sollen.

Gregory Pakosz
quelle
Was ist mit dem gleichen in Quecksilber?
Nevin Raj Victor
14

Sie können verwenden

git show -s --format=%s

Hier --formatwerden verschiedene Druckoptionen aktiviert, siehe Dokumentation hier . Konkret %sbedeutet "Betreff". Darüber hinaus -ssteht für --no-patch, was den Diff-Gehalt unterdrückt.

Ich benutze oft

git show -s --format='%h %s'

Dabei %hbezeichnet ein kurzer Hash des Commits

Ein anderer Weg ist

git show-branch --no-name HEAD

Es scheint schneller zu laufen als in die andere Richtung.

Ich habe tatsächlich ein kleines Tool geschrieben, um den Status aller meiner Repos zu sehen. Sie finden es auf Github .

nr
quelle
IMO ist dies besser als die akzeptierte Antwort für mehrere Commits. Es erzeugt für mich keine unnötigen Zeilenumbrüche. Mehrere Commits (dh nach 5) können angezeigt werden, indem -5, dhgit show -s --format=%s -5
Sigmatics
10

git log -1 branch_name zeigt Ihnen die letzte Nachricht aus dem angegebenen Zweig an (dh nicht unbedingt den Zweig, in dem Sie sich gerade befinden).

CJ Dennis
quelle
7

Führen Sie diesen Befehl einmal aus, um etwas Lesbares zu erhalten:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

so dass, wenn Sie dann laufen:

git lg

Sie erhalten eine schöne Anzeige. So zeigen Sie nur die letzte Zeile an:

git lg -1

Lösung hier gefunden

sungiant
quelle
4

Beginnen mit git log -1 --pretty='%s'

Aber das Folgende deckt alle Fälle ab,

git log --pretty='format:%Creset%s' --no-merges -1

  • Keine unerwünschten Leerzeichen
  • Verwirft Zusammenführungs-Commits
  • Keine Festschreibungs-ID, Datum, Zeigt nur die Nachrichten an.

Einfügen und selbst sehen

nehem
quelle
3

ich war das

git reflog -1 | sed 's/^.*: //'
LukePOLO
quelle
0

Ich habe gerade eine Problemumgehung mit Shell gefunden, indem ich den vorherigen Befehl abgerufen habe.

Drücken Sie Strg-R , um den Rückwärtssuchbefehl aufzurufen:

reverse-i-search

Beginnen Sie dann mit der Eingabe von git commit -m . Dies fügt dies als Suchbefehl hinzu und bringt das vorherige git commit mit der folgenden Meldung:

reverse-i-search`git commit -m`: git commit -m "message"

Eingeben. Das ist es!

(getestet in Ubuntu Shell)

Steve S.
quelle