Ändern der Ausgabefarben für den Git-Status in Posh-Git

70

Wenn ich in Posh-Git "git status" in einem Repository ausführe, sind die Farben für Änderungen und nicht verfolgte Dateien dunkelrot, wenn ich versucht habe, sie als "normales" Rot zu konfigurieren. Ich möchte dies tun, weil ich eine Konsole mit dunklem Hintergrund habe, sodass Dunkelrot schwer zu lesen ist.

Ich habe mich umgesehen und es scheint zwei Konfigurationsänderungen zu geben, die ich vornehmen musste:

  1. Ändern Sie "WorkingForegroundColor" und "UntrackedForegroundColor" in "GitPromptSettings" von "DarkRed" in "Red".

  2. Ändern Sie "color.status.changed" und "color.status.untracked" in git config in red.

Nach meiner Lektüre ist das alles, was ich tun muss, und dennoch bleiben die Ergebnisse des "Git-Status" dunkelrot.

Hier ist eine Zusammenfassung, um zu beweisen, dass ich sie so eingestellt habe, wie ich es behauptet habe, und vielleicht kann jemand den Fehler erkennen:

Bildschirmfoto

Nachtschaufel
quelle
Die Frage ist, wie hat dieses Thema mit diesen Farben?
Ridermansb

Antworten:

58

Es gibt hier nur eine Möglichkeit, DarkRed in Rot zu ändern: Ändern Sie das Farbschema des Konsolenfensters. Soweit ich weiß, wird git "first" red auf der Liste auswählen (das ist zufällig dunkel ...). Erhöhen Sie einfach den R-Wert dafür.

Sie können dies direkt im Fenster (Eigenschaften -> Farben) oder in der Registrierung tun. Prompt ist eine andere Geschichte: Es werden PS-Farbnamen verwendet, wobei Rot = Rot, nicht DarkRed ...

BartekB
quelle
3
Das ist toll. Ich hatte keine Ahnung, dass der Satz von Farben in Eigenschaften eine Farbpalette war, aus der alles zeichnen würde.
Ben Wilde
2
Ich werde nicht lügen, ich war ziemlich skeptisch, das Rot aus dem Eigenschaftenfenster zu ändern ... aber ganz genau. Tolle Antwort =)
afreeland
Funktioniert super! Funktioniert auch für Powershell, wenn Sie die Standardkonsole (nicht ISE) verwenden. Und es funktioniert sowohl für den Git-Status als auch für Posh-Git. Ich ging einfach zu Eigenschaften -> Farben, klickte auf das Dunkelrot und änderte seinen Rotwert auf 255. Funktioniert jetzt fantastisch. Vielen Dank!
Tolga
Tolle Hilfe. Ich war so verärgert über die Statusinformationen der roten Farbe. Hat versucht, es zu ändern, funktioniert aber nicht. Einfach den roten Wert auf 15 setzen, was für mich großartig ist.
Charasala
Laufende Powershell. War sehr hilfreich. Vielen Dank.
Jdawiz
116

Die Ausgabe von git statuswird von Ihrer .gitconfig-Datei gesteuert. Die Standardeinstellung für changedund untrackedDateien ist schwach, Redaber Sie möchten wahrscheinlich Red Bolddas helle (Standard-) Rot, das Sie in der Eingabeaufforderung haben.

Fügen Sie Ihrer .gitconfig-Datei Folgendes hinzu:

[color]
    ui = true
[color "status"]
    changed = red bold
    untracked = red bold
    added = green bold

Für alle anderen , dies in Zukunft verweisen, die akzeptierten Farben sind normal, black, red, green, yellow, blue, magenta, cyan, und whiteauch ein einzelner optionaler Modifier bold, dim, ul, blink, oder reverse. Wenn zwei Farben angegeben sind, ist die erste der Vordergrund und die zweite der Hintergrund.

WarrenB
quelle
1
Danke - mein Leben ist jetzt komplett! Ein Hinweis für alle, die Probleme haben könnten, dies zum Laufen zu bringen. Es hat bei mir nicht funktioniert, bis ich eine neuere Version von posh-git installiert habe.
Ckapilla
4
Dies funktioniert für jede Version von Git unter Windows, nicht nur für nobles Git.
Michael Landes
3
Dies funktioniert sogar auf Powershell. +1 für meine Produktivitätssteigerung.
Klicken Sie auf Ok
4
Verwendete das Muster git config <color-to-update> “foreground-color background-color attribute”wiegit config --global color.status.changed "cyan normal bold"
Matthew McDermott
Was ist ui = wahr? Überprüfen Sie hier die Abschnittsfarben.
Timo
13

Um die Farbe der aufgelisteten nicht verfolgten und geänderten Dateien in die besser lesbare gelbe Farbe zu ändern, können Sie diese zu Ihrer ~ / .gitconfig-Datei hinzufügen:

[color "status"]
    untracked = bold yellow
    changed = bold yellow

Es ist dann wahrscheinlich eine gute Idee, GitPrompt.ps1 so zu aktualisieren, dass es nicht als gelb angezeigt wird:

    UntrackedForegroundColor  = [ConsoleColor]::Yellow
    WorkingForegroundColor    = [ConsoleColor]::Yellow

Bearbeiten: GitPrompt.ps1 befindet sich im PowerShell-Ordner posh-git.

Thomas Svensen
quelle
8

Zusätzlich zur @ WarrenB-Antwort. Um die Farbe des Status und die Farbe des Git-Diff (von neuen und entfernten Zeilen) zu ändern , müssen Sie dies in Ihrer .git / config-Datei haben:

[color]
ui = true
[color "status"]
changed = red bold
untracked = red bold
added = green bold
[color "diff"]
old = red bold
new = green bold

Die Option "diff" aktiviert die hellen (fetten) roten und grünen Farben. Referenz: https://git-scm.com/docs/git-config#git-config-colordiff

Luigi Lopez
quelle
7

Sie können diese ändern, indem Sie die Quelle der Datei GitPrompt.ps1 im PowerShell-Modul posh-git ändern. Ich hatte das gleiche Problem und entfernte gerade das 'Dunkel' in den Farben, die in dieser Datei um Zeile 30 definiert sind:

BeforeIndexForegroundColor= [ConsoleColor]::**Green**
BeforeIndexBackgroundColor= $Host.UI.RawUI.BackgroundColor

IndexForegroundColor      = [ConsoleColor]::**Green**
IndexBackgroundColor      = $Host.UI.RawUI.BackgroundColor

WorkingForegroundColor    = [ConsoleColor]::**Red**
WorkingBackgroundColor    = $Host.UI.RawUI.BackgroundColor

UntrackedText             = ' !'
UntrackedForegroundColor  = [ConsoleColor]::**Red**

Diese Liste der Powershell-Farben ist ebenfalls nützlich.

Ade Miller
quelle
2
Dies funktionierte zum Ändern der Farben an der Eingabeaufforderung, die den abgekürzten Status anzeigt (Beispiel: [master +1 ~ 0 -0 | +2 ~ 0 ~ 0]). Die vom Befehl "git status" ausgegebenen Farben wurden jedoch nicht geändert. Auch der Vorschlag von BartekB änderte sich nicht.
John Pankowicz
arbeitete für mich an beiden Standorten, aber erst nachdem ich die neueste Version von posh-git
ckapilla
funktionierte gut für mich mit Powershell und nur Standard-Git von Git Bash (was ist Posh überhaupt lol)
Stéphan Champagne