Gibt es eine Möglichkeit, die Ausgabe für git (oder einen Befehl) zu färben?

Beachten Sie:

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: app/models/message_type.rb # no changes added to commit (use "git add" and/or "git commit -a") baller@Laptop:~/rails/spunky-monkey$ git add app/models  

und

 baller@Laptop:~/rails/spunky-monkey$ git status # On branch new-message-types # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: app/models/message_type.rb #  

Die Ausgabe sieht gleich aus, aber die Informationen sind völlig unterschiedlich: Die Datei wurde für das Festschreiben von nicht bereitgestellt auf bereitgestellt.

Gibt es einen Weg? Ausgabe ausgeben? Zum Beispiel sind nicht bereitgestellte Dateien rot, die bereitgestellten sind grün?

Oder sogar Changes not staged for commit: nach rot und # Changes to be committed: nach grün?

Arbeiten in Ubuntu.

BEARBEITEN: Googeln hat diese Antwort gefunden, die hervorragend funktioniert: git config --global --add color.ui true.

Es gibt jedoch eine allgemeinere Lösung für das Hinzufügen von Farbe zu a Befehlsausgabe?

Kommentare

  • Sie möchten etwas, das alle Befehlsausgaben koloriert? Wie würde es wissen, welche Teile zu färben sind?
  • Ich denke, wenn es eine Möglichkeit gäbe, es mit Regex zu konfigurieren: Jede Farbe könnte einen Start-Regex haben. Und es könnte einen Standard-Farbregex geben, um alle Farben auszuschalten. Und wenn der Text “ foo “ angezeigt wird, zeigen Sie ihn in einer bestimmten Farbe an …

Antwort

Sie können einen Abschnitt [color] in Ihrem ~/.gitconfig mit zB Der folgende Inhalt

[color] diff = auto status = auto branch = auto interactive = auto ui = true pager = true 

Sie können auch genau steuern, was auf welche Weise gefärbt werden soll, z. B.

[color "status"] added = green changed = red bold untracked = magenta bold [color "branch"] remote = yellow 

Ich hoffe, Sie können damit anfangen. Und natürlich benötigen Sie ein Terminal, das Farbe unterstützt.

Kommentare

  • Ich denke, es könnte sich lohnen, git config –global color.ui zu verwenden auto (@Evgeny ‚ s Antwort) ganz oben auf Ihrer Seite … Ich denke, dass ‚ wahrscheinlich das ist, was die meisten Leute sind Auf der Suche nach. Ich ‚ habe beide positiv bewertet … Ich ‚ sage nur, um des Internets willen, wie es hierher kommt, denke ich a Viele Leute wollen nur diesen einfachen Einzeiler. Umso besser, wenn sie es bekommen, plus Ihre zusätzliche Güte.
  • Das hat perfekt für mich funktioniert – im Abschnitt [color "status"] habe ich .
  • Sie können dem Abschnitt ‚ auch eine .git / config-Datei hinzufügen.
  • Und Sie Sie können einfach eine Konfigurationsvariable für einen einzelnen Aufruf eines git-Befehls festlegen: stackoverflow.com/a/18304605/134044

Antwort

Sie möchten wahrscheinlich

git config --global color.ui auto 

die auto besagt, dass git nur versucht, Farbe auf Terminals zu verwenden, die dies unterstützen, und dass Sie keine ANSI-Sequenzen erhalten, wenn Sie beispielsweise die Ausgabe von git-Befehlen in eine Datei umleiten. Das Festlegen auf true entspricht auto, und dies ist auch die Standardeinstellung seit Git 1.8.4.

Die color.ui ist eine Metakonfiguration, die alle verschiedenen color.* -Konfigurationen enthält, die mit git-Befehlen verfügbar sind.

Dies wird erläutert Ausführliche Informationen zu git help config.

Kommentare

  • Können Sie den Unterschied zwischen color.ui true (auf die auto zeigt) versus always? Ich habe die Dokumente gelesen, aber ich verstehe den Unterschied immer noch nicht.
  • @chharvey color.ui = auto + git diff | less – keine Farben, color.ui = always + git diff | less – farbige Ausgabe. LESS=-R ist impliziert.

Antwort

git config --global color.ui auto git config --global color.branch auto git config --global color.status auto 

Kommentare

  • FYI, nur dies funktionierte für Git-Version 1.5.2.1, andere Antworten haben ‚ t.

Antwort

Die akzeptierte Antwort bietet die häufigste Lösung. Wenn Sie die Konfiguration aus irgendeinem Grund nicht dauerhaft ändern müssen, wie dies bei dieser Lösung der Fall ist, können Sie die Konfiguration für einen einzelnen Git-Befehl überschreiben:

git -c color.ui=always <usual git command and options> 

Zum Beispiel :

git -c color.ui=always status git -c color.ui=always diff 

Getestet: unterstützt von Git 2.4.6, nicht unterstützt von Git 1.7.1.

Kommentare

  • Für alle anderen, die versuchen, Farbe in less zu leiten, wie ich es gerade war, können Sie less Übergeben Sie die Farb-Escape-Zeichen über less -R an das Terminal.
  • Wann wurde diese Funktion hinzugefügt?

Antwort

git config --global color.ui always git config --global color.branch always git config --global color.diff always git config --global color.interactive always git config --global color.status always git config --global color.grep always git config --global color.pager true git config --global color.decorate always git config --global color.showbranch always 

Antwort

oder deaktivieren Sie die gesamte / den größten Teil der Färbung über:

git config --global color.ui false git config --global color.branch false git config --global color.diff false git config --global color.interactive false git config --global color.status false git config --global color.grep false git config --global color.pager false git config --global color.decorate false git config --global color.showbranch false 

Kommentare

  • OP war nicht ‚ nicht darauf ausgerichtet, Farben auszuschalten, sondern Farben einzuschalten . Im OP erklärte er, wie man für git vorgeht, und möchte eine Möglichkeit, dies in einem globaleren Sinne zu tun. Wenn Sie eine solche Methode kennen, bearbeiten Sie bitte Ihre Antwort, um dies zu erklären.
  • Manchmal suchen die Leute nach etwas eng verwandtem, aber etwas anderem – aber danke für die Ablehnung.
  • Ich mochte it @theRiley

Antwort

Für eine farbige git diff -Rohrleitung In less funktioniert dies:

git -c color.diff=always diff [...] | less -R 

Antwort

Sie können dies mit Arbitrary Command Output Colourer tun. Es funktioniert meistens, aber ich habe nicht herausgefunden, wie man einen Fehler umgeht, bei dem Eingabeaufforderungen, die eine Eingabe erwarten, nicht angezeigt werden, und Sie können nicht einfach die bekannte erforderliche Eingabe eingeben und die Eingabetaste drücken, um in jedem Fall fortzufahren.

Beispiel für ~/.acoc.conf für git:

# git [git/ae] /.*(error:.*)/ red+bold /.*(warning:.*)/ yellow /.*(hint:.*)/ magenta /.*(up-to-date).*/ green+bold /.*(nothing to commit).*/ green /^(\+.*)/ green /^(-.*)/ red 

. Dies funktioniert gut zusammen mit alias git="acoc git" in .bash_profile.

Kommentare

  • Können Sie Ihre Konfiguration für acoc freigeben?
  • Nvm, es war einfach zu schreiben. 🙂 Zur Antwort hinzugefügt.

Antwort

Ich weiß, dass der Beitrag vier Jahre alt ist, aber niemand hat aus meinem Lager geantwortet, der Farbenblinde. Wenn Sie können Farben unterscheiden, meinen Beitrag ignorieren.

„Git-Status“ gibt beispielsweise Text aus, der weiß auf Hintergrund / schwarz auf weißem Hintergrund (lesbar), dunkelgrau für gelöscht (unleserlich vor schwarzem Hintergrund, aber lesbar dagegen) ist ein weißer Hintergrund) und mittelgrau für a dded (Gerste auf schwarzem Hintergrund lesbar, auf weißem Hintergrund unleserlich). Ich habe den Hintergrund meines Terminalfensters auf / von Weiß / Schwarz umgeschaltet, damit ich den unleserlichen Text lesen konnte. Eine einfache Lösung ist mehr:

 git status | more 

Dadurch wird der gesamte Text in einem Standard-Terminalfenster mit weißem oder schwarzem Hintergrund lesbar.

Kommentare

  • Sie können die Konfiguration auch so ändern, dass standardmäßig alles auf keine Farbe eingestellt ist (color.ui = never).

Antwort

Um die Ausgabe von git diff einzufärben, können Sie einen Abschnitt color.diff hinzufügen ~ / .gitconfig. Beispiel:

[color "diff"] new = bold italic 154 old = bold italic 196 

Hier sind 154 und 196 ANSI 256-Farben-Codes. Weitere Informationen finden Sie unter man git config.

Antwort

Schauen Sie sich https://github.com/dandavison/delta für die farbliche Syntaxhervorhebung der (git) diff-Ausgabe und die farbige Hervorhebung der hinzugefügten / entfernten Zeilen im diff .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.