Wie färbe ich die Git-Konsole?


371

Ich habe kürzlich gesehen, dass die gitKonsole in Windows farbig ist, z. B. Grün für Ergänzungen, Rot für Löschungen usw. Wie färbe ich meine gitKonsole so?

Um es zu installieren, habe ich den folgenden Befehl verwendet: $ sudo apt-get install git-core


6
Ab git1.8.4 sollten standardmäßig Farben angezeigt werden. Siehe meine Antwort unten .
VonC

1
@VonC git 1.9.1 unter Ubuntu 14.04 ist nicht passiert. Musste die Konfiguration von JoelPurras Antwort selbst einstellen.
Izkata

1
@Izkata seltsam, ich werde es später testen, aber was ist mit einem Git 2.1+? (wie ich unten in stackoverflow.com/questions/10998792/… kommentiert habe )
VonC

Antworten:


682

Wie festgestellt , von @VonC , color.uistandardmäßig autoseit Git 1.8.4


Aus der Unix & Linux Stackexchange-Frage Wie kann die Ausgabe von Git eingefärbt werden ? und die Antwort von @Evgeny :

git config --global color.ui auto

Dies color.uiist eine Metakonfiguration, die alle verschiedenen color.*Konfigurationen enthält, die mit gitBefehlen verfügbar sind . Dies wird ausführlich in erläutert git help config.

Im Grunde ist es einfacher und zukunftssicherer, als die verschiedenen color.*Einstellungen separat festzulegen.

Ausführliche Erklärung aus der git configDokumentation :

color.ui: Diese Variable bestimmt den Standardwert für Variablen wie color.diffund color.grep, die die Verwendung von Farbe pro Befehlsfamilie steuern. Der Gültigkeitsbereich wird erweitert, wenn mehr Befehle die Konfiguration lernen, um einen Standard für die --colorOption festzulegen. Stellen Sie dies ein, alwayswenn alle Ausgaben, die nicht für den Maschinenverbrauch bestimmt sind, Farbe verwenden sollen, trueoder autowenn diese Ausgabe beim Schreiben in das Terminal Farbe verwenden soll, falseoder neverwenn git-Befehle keine Farbe verwenden sollen, es sei denn, dies ist bei einigen explizit aktiviert andere Konfiguration oder die --colorOption.


11
Dies funktioniert auch unter OSX, nicht nur unter Linux, wie die Frage gestellt hat
StackExchange What The Heck

Wahrscheinlich muss am Ende 'true' hinzugefügt werden. git config --global color.ui auto true
Vamshi

6
@Skeptor: Nein, autoist genug.
Joel Purra

2
@Phani: Ja, es ist hartnäckig.
Joel Purra

5
Es ist persistent, da es den ui = autoEintrag zum [color]Abschnitt in der Benutzerdatei hinzufügt ~/.gitconfig.
Andris


30

Fügen Sie Ihrer .gitconfig-Datei den nächsten Code hinzu:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan

7

Git färbt den größten Teil seiner Ausgabe automatisch ein, wenn Sie dazu aufgefordert werden. Sie können sehr genau festlegen, was und wie gefärbt werden soll. Um jedoch alle Standardfarben für das Terminal zu aktivieren, setzen Sie color.ui auf true:

git config --global color.ui true

6

In Ubuntu oder einer anderen Plattform (ja, auch Windows!); Ab git1.8.4 , das am 23.08.2013 veröffentlicht wurde , müssen Sie nichts mehr tun :

In vielen Tutorials lernen Benutzer, "color.ui" als erstes auf "auto" zu setzen, nachdem Sie " user.name/email" festgelegt haben, um sich Git vorzustellen. Jetzt ist die Variable standardmäßig " auto".

Sie sehen also standardmäßig Farben.


2
( Nun , sogar Windows, abhängig vom Terminal: stackoverflow.com/a/12133244/6309 )
VonC

2
Mit Ubuntu im Jahr 2014 installiert Git und musste noch laufen git config --global color.ui auto. Gleiches gilt für meinen Mac, der einzige, der standardmäßig autoGit Bash auf meinem Windows-PC verwendet.
Sargas

1
@sargas Sicher, Sie müssen von einem PPA installieren : launchpad.net/~git-core/+archive/ppa (für Ubuntu) oder git-scm.com/download/mac (für Mac)
VonC

1
Ich verstehe, also kommt es auf die Quelle an. Ich freue mich über Ihre Zeit, dies zu kommentieren.
Sargas

6

Fügen Sie in Ihrer ~/.gitconfigDatei einfach Folgendes hinzu:

[color]
  ui = auto

Es kümmert sich um alle Ihre Git-Befehle.


5

Eine andere Möglichkeit besteht darin, die zu bearbeiten .gitconfig(erstellen Sie eine, falls nicht vorhanden), zum Beispiel:

vim ~/.gitconfig

und dann hinzufügen:

[color]
  diff = auto
  status = auto
  branch = auto

3
wie @ chuntao-lu erwähnt [color] ui = autoist genug.
Chacko Mathew

5

GIT verwendet standardmäßig eine farbige Ausgabe, ist jedoch auf einigen Systemen wie CentOS nicht aktiviert. Sie können es so aktivieren

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Hier können Sie Ihren gewünschten Befehl auswählen.

Hier ist --global optional, um Aktionen für jedes Repository in Ihrem System anzuwenden. Wenn Sie die Färbung nur für das aktuelle Repository anwenden möchten, können Sie Folgendes tun:

 git config color.ui  true 

1

Mit Git 2.18 haben Sie mehr Kontrolle darüber, wie Sie Farben in der Konsole angeben möchten.
Der git configBefehl " " verwendet separate Optionen, z. B. " --int", " --bool" usw., um anzugeben, als welchen Typ der Aufrufer den Wert interpretieren möchte .

Es wurde eine neue --type=<typename>Option " " eingeführt, die es einfacher macht, neue Typen zu definieren.

Siehe Commit fb0dc3b (18. April 2018) und Commit 0a8950b (09. April 2018) von Taylor Blau ( ttaylorr) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit e3e042b , 08. Mai 2018)

builtin/config.c: Unterstützung --type=<type>als bevorzugter Alias ​​für--<type>

git confighat es Anrufern seit langem ermöglicht, einen 'Typspezifizierer' bereitzustellen, der anweist git config, (1) sicherzustellen, dass eingehende Werte als dieser Typ interpretiert werden können, und (2) dass ausgehende Werte unter diesem Typ kanonisiert werden.

In einer anderen Serie schlagen wir vor, diese Funktionalität zu erweitern --type=colorund --defaultzu ersetzen --get-color.

Wir verwenden jedoch traditionell --color"diese Ausgabe einfärben", anstatt "dieser Wert sollte als Farbe behandelt werden".

Derzeit wird git configdiese Art der Kolorierung nicht unterstützt, aber wir sollten darauf achten, dass Sie diese Option nicht zu früh in die Hocke nehmen, damit git configsie --color(im herkömmlichen Sinne) in Zukunft unterstützt werden kann, wenn dies gewünscht wird.

In diesem Patch unterstützen wir --type=<int|bool|bool-or-int|...>zusätzlich zu --int, --boolund usw.
Dies ermöglicht es dem oben genannten bevorstehenden Patch, das Abfragen eines Farbwerts mit einem Standard-Via zu unterstützen --type=color --default=..., ohne zu verschwenden --color.

Wir behalten das historische Verhalten bei, uns zu beschweren, wenn mehrere --<type>Flags im Legacy-Stil angegeben werden, und erweitern dies auf widersprüchliche --type=<type>Flags im neuen Stil . --int --type=int(und sein kommutatives Paar) beschwert sich nicht, aber --bool --type=int(und sein kommutatives Paar).

Also vorher --boolund --intjetzt ( Dokumentation ):

--type <type>

' git config' stellt sicher, dass alle Eingaben oder Ausgaben unter den angegebenen Typbeschränkungen gültig sind, und kanonisiert ausgehende Werte in<type> der kanonischen Form.

Gültig <type>sind:

  • ' bool': Werte als " true" oder " false" kanonisieren.
  • ' int': Werte als einfache Dezimalzahlen kanonisieren. Ein optionales Suffix von ' k', ' m' oder ' g' bewirkt, dass der Wert bei der Eingabe mit 1024, 1048576 oder 1073741824 multipliziert wird.
  • ' bool-or-int': kanonisieren nach ' bool' oder ' int', wie oben beschrieben.
  • ' path': kanonisieren durch Hinzufügen eines Leadings ~zum Wert von $HOMEund ~userzum Home-Verzeichnis für den angegebenen Benutzer. Dieser Bezeichner hat keine Auswirkung beim Festlegen des Werts (Sie können ihn jedoch git config section.variable ~/über die Befehlszeile verwenden, damit Ihre Shell die Erweiterung ausführt.)
  • ' expiry-date': kanonisieren durch Konvertieren von einer festen oder relativen Datumszeichenfolge in einen Zeitstempel. Dieser Bezeichner hat keine Auswirkung auf die Einstellung des Werts.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Beachten Sie, dass Git 2.22 (Q2 2019) erklärt, dass " git config --type=color ..." ersetzen soll " git config --get-color, aber es gibt einen kleinen Unterschied, der nicht dokumentiert wurde und der jetzt behoben ist.

Siehe Commit cd8e759 (05. März 2019) von Jeff King ( peff) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit f6c75e3 , 20. März 2019)

config: Die Dokumentausgabe --type=colorist eine vollständige Zeile

Obwohl die neuere --type=colorOption " " bis " git config" mit der herkömmlichen Option " " aufwärtskompatibel sein soll --get-color, ist ihre Ausgabe im Gegensatz zu letzterer keine unvollständige Zeile, der am Ende der LF fehlt.
Das macht es konsistent mit der Ausgabe anderer Typen wie " git config --type=bool".

Dokumentieren Sie es , da es manchmal ahnungslose Benutzer überrascht.

Dies lautet nun:

--type=color [--default=<default>]wird gegenüber bevorzugt --get-color (beachten Sie jedoch, dass --get-colordie von gedruckte neue Zeile nicht weggelassen wird --type=color).


Sie können sehen git config --type=bool, dass mit Git 2.26 (Q1 2020) " git config --bool" Aufrufe in Beispielvorlagen ersetzt werden.

Siehe Commit 81e3db4 (19. Januar 2020) von Lucius Hu ( lebensterben) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit 7050624 , 30. Januar 2020)

templates: Veraltete Typoption korrigieren --bool

Unterzeichnet von: Lucius Hu

Die --boolOption to git-configist als historisch markiert, und Benutzern wird empfohlen, --type=boolstattdessen zu verwenden .
Dieses Commit ersetzt alle Vorkommen --boolin den Vorlagen.

Auch zur Kenntnis, dass keine andere veralteten Typs Optionen gefunden werden , einschließlich --int, --bool-or-int, --path, oder --expiry-date.


0

siehe hier: https://nathanhoad.net/how-to-colours-in-git/

Schritte:

  1. Öffnen Sie ~ / .gitconfig zum Bearbeiten

    vi ~ / .gitconfig

  2. Fügen Sie folgenden Code ein:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Speicher die Datei.

Ändern Sie einfach eine Datei in Ihrem lokalen Repo und tun Sie es

git status

Es gibt bereits die gleiche # answer-29320572 von Victor
Kritik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.