Das git log --decorate
wird standardmäßig gesetzt:
- der KOPF in Cyan
- die entfernten Zweige in rot
- das tag in grün
und kann über color.decorate
config geändert werden .
Die git log --format
bieten jedoch keine Möglichkeit, die HEAD
oder Fernbedienungen oder Zweige spezifisch anzuzeigen : Alle drei werden durch angezeigt %d
, wobei eine Farbe möglich ist.
Update Mai 2013, wie unten von Elad Shahar erwähnt (positiv bewertet), bietet Git 1.8.3 eine weitere Option:
git log –format
Jetzt wird ein %C(auto)
Token angezeigt, das Git anweist, beim Auflösen %d
(Dekoration), %h
(kurzer Commit-Objektname) usw. Farbe für die Terminalausgabe zu verwenden.
In diesem Atlassian-Blogbeitrag wird kommentiert, dass diese Funktion Teil mehrerer anderer Funktionen ist, die sich auf Format ( git rebase
, git count-objects
) und Farben ( git branch -vv
) konzentrieren.
Dies kommt zu dem vorherigen auto,reset
von 1.8.2 hinzu , der Farben automatisch deaktiviert, wenn der Ausgang nicht für ein Terminal1 verwendet wird
%C(auto,blue)Hello%C(auto,reset)
Hinweis: Mit Git 2.4+ (2. Quartal 2015) können Sie die Farbe um Zweigstellennamen besser zurücksetzen.
Siehe Commit 5ee8758 von Junio C Hamano ( gitster
) :
log --decorate
: Geben Sie keine "Commit" -Farbe in das nächste Element ein
In " git log --decorate
" sehen Sie den Commit-Header wie folgt:
commit ... (HEAD, jc/decorate-leaky-separator-color)
Dabei wird " commit ... (
" eingezeichnet color.diff.commit
, " HEAD
" in color.decorate.head
" ,
" in " color.diff.commit
, der Filialname in
color.decorate.branch
und dann" )
"in color.diff.commit
.
Wenn Sie den Namen des KOPFES und des lokalen Zweigs in derselben Farbe wie der Text des Körpers malen möchten (möglicherweise, weil Cyan und Grün auf einem Schwarz-Weiß-Terminal zu schwach sind, um lesbar zu sein), möchten Sie dies nicht sagen müssen
[color "decorate"]
head = black
branch = black
weil Sie nicht in der Lage wären, dieselbe Konfiguration auf einem Weiß-auf-Schwarz-Terminal wiederzuverwenden. Sie würden naiv erwarten
[color "decorate"]
head = normal
branch = normal
zu arbeiten, aber leider nicht.
Es malt die Zeichenfolge " HEAD
" und den Zweignamen in derselben Farbe wie die öffnende Klammer oder das Komma zwischen den Dekorationselementen.
Dies liegt daran, dass der Code vergisst, die Farbe zurückzusetzen, nachdem das "Präfix" in seiner eigenen Farbe gedruckt wurde.
Beachten Sie, dass Git 2.5 (Q2 2015) einen Fehler behebt:
Siehe Commit 429ad20 von Junio C Hamano ( gitster
) , 13. Mai 2015.
(Zusammengeführt von Junio C Hamano - gitster
- in Commit fd70780 , 22. Mai 2015)
log
: Dekorationsnamen nicht zu früh kürzen
Die " log --decorate
" Erweiterung in Git 2.4, die das Commit an der Spitze des aktuellen Zweigs HEAD -> master
anzeigt, z. B. " ", funktionierte nicht mit --decorate = full.
Git 2.9.x + (Q3 2016) wird einen weiteren Fehler und eine weitere Ehre für behebencolor=auto
%C(auto)
Git 2.10.2 (Okt. 2016) behebt andere Fehler mit Commit 82b83da (29. September 2016) und Commit c99ad27 (17. September 2016) von René Scharfe (``) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit 76796d4 , 28. Oktober 2016)
pretty
: Vermeiden Sie das Hinzufügen von Reset, %C(auto)
wenn die Ausgabe leer ist
Wir geben eine Escape-Sequenz zum Zurücksetzen von Farbe und Attribut aus %C(auto)
, um sicherzustellen, dass die automatische Farbgebung wie beabsichtigt angezeigt wird.
Beenden Sie dies, wenn der Ausgabe-Strbuf leer ist , dh wenn er %C(auto)
am Anfang der Format-Zeichenfolge angezeigt wird , da dann kein Zurücksetzen erforderlich ist und wir einige Bytes in der Ausgabe speichern.
pretty
: %C(auto)
Alle Attribute zurücksetzen lassen
Setzen Sie Farben und Attribute zurück , %C(auto)
um eine vollautomatische Kontrolle über sie zu ermöglichen. Andernfalls könnten Attribute wie Fett oder Umgekehrt noch von früheren Attributen wirksam sein%C
Platzhaltern verwendet werden .
--decorate
scheint eine eigene Implementierung und Konfiguration zu haben,--pretty
bietet jedoch die gleichen Informationen%d
wie ein Block, was bedeutet, dass Sie nicht die gleiche feinkörnige Farbkonfiguration mit--pretty
haben können wie mit--decorate
.git config --show-origin -l
: Sie werden alle Ihre Konfigurationen sehen. Sie können dann nach "Farbe" suchen.Klammern Sie sie in Klammern:
So
%C(yellow reverse)
funktionieren würde.quelle
%d
sind alle Zweige so, dass es so aussehen könnte(HEAD, master)
, in diesem Fall sollte der Kopf blau und der Master grün sein (ich glaube, das sind die Standardfarben). wo%C(yellow)%d%Creset
würde es alle die gleiche Farbe machen.git log --decorate --oneline --date=...
Die Konfigurationsoption
log.decorate
kann Standarddekorationen in Protokollen aktivieren / deaktivieren.Sobald dies erledigt ist, können Sie
color.decorate.*
mit den Farben spielenquelle
log.decorate=full
bewirkt, dass die Referenznamen mit ihren Präfixen (refs/heads/
usw.) gedruckt werden ; Ich findelog.decorate=short
es nützlicher.short
alsfull
Einige möchten dies möglicherweise verwenden:
%C(colorname)
Dies muss die Farbkonfiguration nicht ändern.Beispiel: Den Autorennamen gelb färben
Normale ANSI-Farben sollten unter https://en.wikipedia.org/wiki/ANSI_escape_code funktionieren
quelle