Beim Laufen git status -sb
sehe ich:
Ich möchte watch
(aus procps-ng 3.3.3) ein Repository. Die --color
Option soll Farben behalten.
Interessanterweise funktioniert es mit ls
:
$ watch --color "ls --color"
Zeigen:
Allerdings git
verschwinden die Farben:
$ watch --color "git status -sb"
Warum watch
werden Farben ls
von der git
Ausgabe angezeigt, aber nicht von der Ausgabe?
git
watch-command
Drew Noakes
quelle
quelle
Antworten:
Die folgenden Aussagen sind wahr:
watch
führt den Befehl in einer neuen Shell aussh
..bashrc
Aliasels
alsls --color=auto
zu Farben ermöglichen.sh
erbt oder verwendet keinebash
Aliase.Also , wenn
watch
läuftls
, ist es nicht für Farben gefragt, es läuft einfach die gute alte Version. Sie können dies umgehen, aber - wie aditya betont - müssen Sie auch Farben aktivieren, damitwatch
sie ordnungsgemäß verarbeitet werden können.Ein Arbeitsbeispiel für
ls
ist:Wenn Sie nicht vorbeikommen
--color
, um zu sehen, sehen Sie eine Reihe hässlicher Farbcodes inline.ls --color
wird interpretiert alsls --color=always
.ls --color=auto
druckt keine Farbe in der Uhr. Dies deutet darauf hin, dass die Farbunterstützung vom Terminal selbst abgeleitet wird.Um mehr über den Grund zu erfahren, können wir testen, ob die Watch Shell ein echtes Terminal für Folgendes hält :
Ich vermute, dass einige Anwendungen dies (oder ähnliches) prüfen, um festzustellen, ob sie Farben aktivieren sollten oder nicht.
quelle
git status -sb
, obwohl es funktioniertls --color
.git
. Die Färbung wird direkt in der Konfiguration von git eingestellt . Dies scheint also kein Aliasing-Problem zu sein.auto
dass, wie Sie richtig vermutet haben, Git die Farbausgabe vermeidet. Die Verwendung vonalways
stattdessen hat dieses Problem gelöst. Danke vielmals!git
Verwendet einen Konfigurationswert, um zu bestimmen, ob eine farbige Ausgabe angezeigt werden soll oder nicht.Zum Beispiel:
Dadurch wird die Farbeinstellung auf
auto
global festgelegt. Imauto
Modus bestimmt git, ob es sich um ein echtes Terminal handelt, bevor Farbcodes gesendet werden, wie Oli vorgeschlagen hat.Sie können diesen globalen Wert erzwingen.
always
Eine bessere Idee ist jedoch, ihn auf einen bestimmten Befehl anzuwenden:Alles zusammen:
quelle
Es funktioniert, wenn
git
(--color
) undwatch
(-c
) aufgefordert werden, Farben zu verwenden:quelle