Um eine farbige Ausgabe von allen Git-Befehlen zu erhalten, habe ich Folgendes festgelegt:
git config --global color.ui true
Dies erzeugt jedoch eine Ausgabe wie diese für git diff
,git log
wohingegen Befehle wie git status
Anzeige in Ordnung sind
Warum werden die maskierten Farbcodes in einigen Befehlen nicht erkannt und wie kann ich das beheben?
Ich verwende iTerm 2 (Terminaltyp xterm-256color
) unter OS X 10.8.2 und zsh als Shell
zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)
git --version
git version 1.7.9.6 (Apple Git-31.1)
less
benötigt ,-R
um die Anzeigefarben, ich habe vergessen , dassgit log
undgit diff
verrohrt Ausgangless
. Vielen Dank :)~/.profile
in FreeBSD hattePAGER=more; export PAGER
LESS
eingestellt,-K
weil ich es mag, zuCTRL-C
allem fähig zu sein . Ich dachte, es wäre etwas Irres mit dieser Variablen, und jetzt weiß ich, wie ich es beheben kann.Indem Sie Gilles ' Antwort verbessern , können Sie Ihre alten
$LESS
Optionen beibehalten, indem Sie diese in Ihrer Git-Konfiguration verwenden (zum Beispiel in~/.gitconfig
):quelle
LESS=-i
in meinem bashrc, also müsste ich "[core] pager = less $ LESS -FR" machen. Ich habe das X entfernt, weil mit X mein vorhandener Terminalinhalt gelöscht wird. Ich bevorzuge, dass der Terminalinhalt bleibt.Sie können diese Ausgabe auch sehen, wenn Sie über eine Busybox verfügen . Alpine Linux ist ein gutes Beispiel für eine beliebte Distribution, die es verwendet. Siehe https://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#How_to_enable.2Ffix_colors_for_git.3F
Eine einfache Möglichkeit, festzustellen, ob Sie derzeit Busybox verwenden, besteht darin, Folgendes auszuführen:
Oder wenn Sie Fisch Schale
Ist dies der Fall
/bin/busybox
, können Sie Ihr Problem lösen, indem Sie gnu less installieren .Auf Alpine:
Der Befehl ist je nach Distribution / Paketmanager unterschiedlich.
quelle