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 .