Al ejecutar git status -sb Veo:

Quiero watch (de procps-ng 3.3.3) un repositorio. El --color se supone que la opción mantiene los colores.
Curiosamente, funciona con ls :
$ watch --color "ls --color"
Mostrando:

Sin embargo, para git los colores desaparecen:
$ watch --color "git status -sb"

Entonces, ¿por qué watch mostrar colores de ls pero no de git salida?
Respuesta aceptada:
Las siguientes afirmaciones son verdaderas:
watchejecuta el comando en un nuevo shell,sh..bashrcaliaslscomols --color=autopara habilitar los colores.shno hereda ni usabashalias.
Así que cuando watch ejecuta ls , no pide colores, solo ejecuta la versión antigua. Puede eludir esto pero, como señala aditya, también debe habilitar los colores en watch para que los procese correctamente.
Un ejemplo de trabajo para ls es:
watch --color -- ls --color=always
Si no pasa --color para mirar, verás un montón de códigos de colores desagradables en línea.
ls --color se interpreta como ls --color=always .
ls --color=auto no color de impresión en el reloj. Esto sugiere que está infiriendo la compatibilidad con el color del propio terminal.
Para obtener más información sobre el motivo, podemos probar si la carcasa del reloj cree que es un terminal real:
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Sospecho que algunas aplicaciones buscan eso (o algo similar) para saber si deben activar los colores o no.