Cuando corro git status -sb
veo:
Quiero watch
(de procps-ng 3.3.3) un repositorio. Se --color
supone que la opción debe mantener los colores.
Curiosamente, funciona con ls
:
$ watch --color "ls --color"
Demostración:
Sin embargo, para que git
los colores desaparezcan:
$ watch --color "git status -sb"
Entonces, ¿por qué watch
muestra colores ls
de la git
salida pero no de la salida?
git
watch-command
Drew Noakes
fuente
fuente
Respuestas:
Las siguientes afirmaciones son verdaderas:
watch
Ejecuta el comando en un nuevo shell,sh
..bashrc
aliasls
comols --color=auto
para permitir a los colores.sh
no hereda ni usabash
alias.Entonces, cuando se
watch
ejecutals
, no está pidiendo colores, solo está ejecutando la versión antigua simple. Puede eludir esto, pero, como señala aditya, también debe habilitar los coloreswatch
para que los procese correctamente.Un ejemplo de trabajo para
ls
es:Si no pasa
--color
a mirar, verá un montón de códigos de colores feos en línea.ls --color
se interpreta comols --color=always
.ls --color=auto
No imprime color en el reloj. Esto sugiere que infiere soporte de color desde el terminal en sí.Para obtener más información sobre el motivo, podemos probar si el shell del reloj cree que es un terminal real :
Sospecho que algunas aplicaciones están mirando eso (o similar) para saber si deberían activar los colores o no.
fuente
git status -sb
, a pesar de que funcionals --color
.git
. La coloración se establece dentro de la configuración de git directamente . Así que esto no parece ser un problema de alias.auto
que, como supusiste correctamente, estaba causando que git evitara la salida de color. Usar en sualways
lugar ha resuelto este problema. ¡Muchas gracias!git
usa un valor de configuración para determinar si mostrar resultados en color o no.Por ejemplo:
Esto establece la configuración de color a
auto
nivel global. Enauto
modo, git determinará si es un terminal real antes de enviar códigos de color, como sugirió Oli.Puede forzar este valor global
always
, sin embargo, una mejor idea puede ser aplicarlo a un comando particular:Poniendolo todo junto:
fuente
Funciona si
git
(--color
) ywatch
(-c
) se les dice que usen colores:fuente