Wie kann ich eine Git-Protokollausgabe mit (mindestens) diesen Informationen anzeigen:
* author
* commit date
* change
Ich möchte, dass es auf eine Zeile pro Protokolleintrag komprimiert wird. Was ist das kürzestmögliche Format dafür?
(versucht, --format=oneline
aber das zeigt nicht das Datum)
git
formatting
logging
Jesper Rønn-Jensen
quelle
quelle
Antworten:
git log --pretty=format:"%h%x09%an%x09%ad%x09%s"
hat den Job gemacht. Dies gibt aus:
Inspiriert von der Stackoverflow-Frage: "Git-Log-Ausgabe wie svn ls -v" fand ich heraus, dass ich genau die Parameter hinzufügen konnte, die ich brauchte.
Um das Datum zu verkürzen (ohne die Uhrzeit anzuzeigen), verwenden Sie
--date=short
Falls Sie neugierig waren, was die verschiedenen Optionen waren:
%h
= abgekürzter Commit-Hash%x09
= Tab (Zeichen für Code 9)%an
= Autorenname%ad
= Autorendatum (Format respektiert - Datum = Option)%s
= BetreffVon kernel.org/pub/software/scm /git/docs/git-log.html (Abschnitt PRETTY FORMATS) nach Kommentar von Vivek.
quelle
date=short
wie cdunn2001 in einer anderen Antwort vorschlägtgit log --pretty=format:"%h %ad%x09%an%x09%s" --date=short
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short
alias glop="git log --pretty=format:'%C(yellow)%h|%Cred%ad|%Cblue%an|%Cgreen%d %Creset%s' --date=short | column -ts'|' | less -r"
Ich verwende diese beiden .gitconfig-Einstellungen:
% ad ist das Autorendatum, das durch
--date
oder die in der Zeilengruppe [log] in .gitconfig angegebene Option überschrieben werden kann. Ich mag das relative Datum, weil es ein unmittelbares Gefühl dafür gibt, wann etwas begangen wurde. Die Ausgabe sieht folgendermaßen aus:Dies ist natürlich alles in Farbe, so dass es einfach ist, die verschiedenen Teile einer Protokollzeile zu unterscheiden.
git log
Aufgrund des Abschnitts [Format] ist dies auch die Standardeinstellung bei der Eingabe .2014 UPDATE: Da Git jetzt das Auffüllen unterstützt, habe ich eine nette Änderung der obigen Version:
Diese rechte Seite richtet die relativen Daten aus und die linke Seite richtet die Namen der Committer aus, was bedeutet, dass Sie ein spaltenartiges Aussehen erhalten, das die Augen schont.
BildschirmfotoUPDATE 2016: Da das Signieren von GPG-Commits zu einer Sache wird, dachte ich, ich würde diesen Beitrag mit einer Version aktualisieren, die eine Signaturüberprüfung enthält (im Screenshot ist es der Magenta-Buchstabe direkt nach dem Commit). Eine kurze Erklärung der Flagge:
Weitere Änderungen sind:
git log -g
Enthält jetzt den Reflog-Selektor.3 years, 4..
)%<(7,trunc)
oder überprüfen Sie die git .mailmap-Funktion , um Commiternamen zu verkürzen).Hier ist die Konfiguration:
Alles in allem bleibt die Spaltenausrichtung jetzt viel besser auf Kosten einiger (hoffentlich) nutzloser Zeichen erhalten. Fühlen Sie sich frei zu bearbeiten, wenn Sie irgendwelche Verbesserungen haben. Ich würde gerne die Farbe der Nachricht davon abhängen lassen, ob ein Commit signiert ist, aber es scheint nicht möglich zu sein, atm.
Bildschirmfotoquelle
tig
Antwort bietet Interaktivität ohne erforderliche Konfiguration, aber diese ist brillant - sie liefert die angeforderte einzeilige Ausgabe (mit Farbe zum Booten!) Mit dem Standardbefehl 'git log'. Sehr schön.>
<
Markierungen mehr. Versucht,%m
zum Format hinzuzufügen , wird dann>
aber jedes Mal angezeigt, auch für einen normalengit log
. Gibt es Hinweise, wie sich Markierungen im Format normal verhalten?--oneline
ist nur ein Alias für--pretty=oneline
.format.pretty
ist das standardmäßige hübsche Format, aber es gibt keine Möglichkeit,format.oneline
afaik zu überschreiben . Ich würde diepretty = shortlog
Zeile in der Konfiguration weglassen und dann einen Alias für die Ausführung erstellengit log --pretty=shortlog
.Verwenden Sie
--date=
diese Option, um ein Datumsformat festzulegenquelle
Fühlen Sie sich frei, dieses zu verwenden:
Beachten Sie das
-7
am Ende, um nur die letzten 7 Einträge anzuzeigen.Aussehen:
quelle
--date=short
kann hinzugefügt werden, um es kürzer zu machen.git log
zeigt immer den Verlauf des aktuell ausgecheckten Zweigs an.%d
, um "ref Namen" wie wiederherzustellen(HEAD -> master)
.reset
statt verwendenauto
?tig ist eine mögliche Alternative zur Verwendung des Befehls git log , der auf den wichtigsten Open Source * nix-Distributionen verfügbar ist.
Versuchen Sie unter Debian oder Ubuntu Folgendes zu installieren und auszuführen :
(WIG wird installiert)
(Das Protokoll wird im Pager wie folgt angezeigt, wobei der Hash des aktuellen Commits unten angezeigt wird.)
Stellen Sie sich Folgendes vor: Spalte 1: blau; Spalte 2: grün; Spalte 3: Standardtextfarbe. Letzte Zeile hervorgehoben. Drücken Sie Q oder q, um den Vorgang zu beenden.
tig
Richtet die Spalten ohne ausgefranste Kanten aus , was eine ASCII-Registerkarte (% x09) nicht garantiert.Für ein kurzes Datumsformat drücken Sie Großbuchstaben D (Hinweis: Kleinbuchstabe d öffnet eine Diff-Ansicht.) Konfigurieren Sie sie dauerhaft, indem Sie
show-date = short
zu ~ / .tigrc hinzufügen. oder in einem[tig]
Abschnitt in .git / configure oder ~ / .gitconfig.So sehen Sie eine vollständige Änderung :
Da tig von git getrennt und anscheinend * nix-spezifisch ist, muss Cygwin wahrscheinlich unter Windows installiert werden. Aber für fedora glaube ich , dass die Installationsbefehle sind
$ su
,(enter root password)
,# yum install tig
. Für freebsd Versuch% su
,(enter root password)
,# pkg_add -r tig
.Tig ist übrigens viel mehr als nur eine schnelle Ansicht des Protokolls: Screenshots & Handbuch
quelle
tig
in meine Konsole gibt mir einfach einen Fehler-bash: tig: command not found
pact install tig
oder
... Riffing zu der obigen Antwort von cdunn2001: Ich würde die E-Mail des Autors verlieren und nur den Namen des Autors gemäß Jesper und knittl angeben, aber im Einklang mit der Idee von cdunn2001, die Ausgabe in Spalten konstanter Breite zu halten, um das Lesen zu erleichtern ( großartige Idee!). Anstelle einer separaten linksbündigen Spalte für den Autorennamen umschließe ich dieses Flag am Ende des Befehls jedoch mit Klammern oder versetze es mit einer Pipe. (Könnte wirklich jedes Zeichen sein, das als visuelle Hilfe beim Lesen der Ausgabe dient ... obwohl es möglicherweise sinnvoll ist, Schrägstriche vor oder zurück zu vermeiden, um die Verwechslung der Ausgabe mit einem Verzeichnis oder etwas anderem zu verringern.)
Beispielausgabe:
quelle
Verwenden Sie einen vordefinierten Git-Alias, dh:
Einmal erstellt durch Befehl:
https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases
Oder mehr mit Grafik gefärbt:
quelle
Ergebnis:
Zeug mit konstanter Breite steht an erster Stelle. Der am wenigsten wichtige Teil - die E-Mail-Domain - ist der letzte und einfach zu filternde.
quelle
Um die von mir inszenierten Commits zu zeigen, die bereit sind, Druck auszuüben, mache ich das
Die Ausgabe sieht ungefähr so aus:
Wo die erste Spalte in Gelb erscheint und das 'H' 'm' und 't' in der Klammer den KOPF, den Master und den Kofferraum zeigen und in ihren üblichen "--decorate" -Farben erscheinen
Hier ist es mit Zeilenumbrüchen, damit Sie sehen können, was es tut:
Ich habe einen Alias für "inszeniert" mit:
(Gibt es einen einfacheren Weg, dem zu entkommen? Es war etwas schwierig herauszufinden, was entkommen musste)
quelle
Alle oben genannten Vorschläge verwenden
%s
Platzhalter für das Thema. Ich empfehle die Verwendung,%B
da durch die%s
Formatierung neue Zeilen erhalten bleiben und die Festschreibungsnachricht für mehrere Zeilen gequetscht angezeigt wird.quelle
Führen Sie dies im Projektordner aus:
Und wenn Sie möchten, fügen Sie diese Zeile zu Ihrer ~ / .gitconfig hinzu:
quelle
Versuchen Sie es mit git log --pretty = fuller, es zeigt Ihnen: - Autor: Autor Datum: Commit: Commit Datum:
Hoffe das hilft.
quelle