Wie färbe ich die Git-Status-Ausgabe ein?

92

Ich möchte die Git-Status-Ausgabe so einfärben, dass:

untracked files = magenta
new files = green
modified files = blue
deleted files = red

Ich sehe stattdessen bereitgestellte Dateien in Grün und nicht bereitgestellte Dateien in Blau: Screenshot des Git-Status

Meine .gitconfig wird basierend auf einigen Suchanfragen wie folgt eingerichtet:

[color]
status = auto

[color "status"]
added = green
changed = blue
untracked = magenta
deleted = red
Andy
quelle
2
Hinweis: Git 2.9.1 unterstützt die Attribute Kursiv und Strike. Siehe meine Bearbeitung unten.
VonC
Entspricht diese Antwort unten Ihrer Frage?
VonC

Antworten:

130

Aus dem Git-Konfigurationsdokument :

color.status.<slot>

Verwenden Sie eine benutzerdefinierte Farbe für die Statusfärbung. <slot>ist einer von:

  • header (der Kopfzeilentext der Statusmeldung),
  • addedoder updated(Dateien, die hinzugefügt, aber nicht festgeschrieben wurden),
  • changed (Dateien, die geändert, aber nicht im Index hinzugefügt werden),
  • untracked (Dateien, die nicht von git verfolgt werden),
  • branch (der aktuelle Zweig),
  • nobranch (Die Farbe, in der die Warnung ohne Verzweigung angezeigt wird, ist standardmäßig rot),
  • localBranchoder remoteBranch(die lokalen bzw. entfernten Zweigstellennamen, wenn Zweig- und Verfolgungsinformationen im Statuskurzformat angezeigt werden),
  • unmerged (Dateien, deren Änderungen nicht zusammengeführt wurden).

Die Werte dieser Variablen können wie in angegeben werden color.branch.<slot>.

Das wird also funktionieren:

git config color.status.changed blue
git config color.status.untracked magenta

Jedoch:

new files = green
deleted files = red

Ist nicht möglich: Sie müssen eine Farbe auswählen:

  • Wenn sie dem Index hinzugefügt werden, wählen sie die Farbe für aus color.status.added.
  • Wenn sie nicht zum Index hinzugefügt werden, wählen sie die Farbe oder aus color.status.modified.

Natürlich, wie von elboletaire kommentiert :

Denken Sie daran, die Farbausgabe zu aktivieren, wenn sie zuvor nicht aktiviert wurde:

git config --global color.ui true

Shaun Luttin fügt hinzu:

Der Befehl kann auch mehrere Parameter in Anführungszeichen setzen. Dies beinhaltet zwei Farben (Vordergrundhintergrund) aus dieser Liste:

normal, schwarz, rot, grün, gelb, blau, magenta, cyan und weiß;

und es enthält auch ein Attribut (Stil) aus dieser Liste:

fett, dunkel, ul, blinken und umkehren.

Das wird also funktionieren:

git config color.status.changed "blue normal bold"
git config color.status.header "white normal dim"

Hinweis: Mit git 2.9.1 (Juli 2016) hat das Ausgabefarbschema zwei neue Attribute gelernt , kursiv undStreik, zusätzlich zu vorhandenen Fettdruck, Umkehrung usw.

Siehe Commit 9dc3515 , Commit 54590a0 , Commit 5621068 , Commit df8e472 , Commit ae989a6 , Commit adb3356 , Commit 0111681 (23. Juni 2016) von Jeff King ( peff) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit 3c5de5c , 11. Juli 2016)

Es erlaubt auch " no-" zum Negieren von Attributen

Die Verwendung von " no-bold" anstelle von " nobold" ist einfacher zu lesen und natürlicher zu tippen (für mich jedenfalls, obwohl ich die Person war, die "nobold" überhaupt eingeführt hat). Es ist einfach, beides zuzulassen.

VonC
quelle
30
Denken Sie daran, die git config --global color.ui true
Farbausgabe
1
@elboletaire guter Punkt. Ich habe es in die Antwort für mehr Sichtbarkeit aufgenommen.
VonC
1
Danke, color.ui ist die Antwort.
Robeezy