Při spuštění git status -sb Vidím:

Chci watch (z procps-ng 3.3.3) úložiště. --color možnost má zachovat barvy.
Zajímavé je, že funguje s ls :
$ watch --color "ls --color"
Zobrazuje se:

Nicméně pro git barvy zmizí:
$ watch --color "git status -sb"

Proč tedy watch zobrazit barvy z ls ale ne z git výstup?
Přijatá odpověď:
Následující tvrzení jsou pravdivá:
watchspustí příkaz v novém prostředísh..bashrcaliasylsjakols --color=autopro aktivaci barev.shnedědí ani nepoužívábashaliasy.
Takže když watch spustí ls , nepožaduje barvy, pouze spouští obyčejnou starou verzi. Můžete to obejít, ale – jak zdůrazňuje aditya – musíte také povolit barvy na watch aby je mohl správně zpracovat.
Funkční příklad pro ls je:
watch --color -- ls --color=always
Pokud nezadáte --color při sledování uvidíte spoustu ošklivých barevných kódů.
ls --color je interpretován jako ls --color=always .
ls --color=auto není barva tisku v hodinkách. To naznačuje, že podporu barev odvozuje od samotného terminálu.
Chcete-li více o důvodu, můžeme vyzkoušet, zda si shell hodinek myslí, že je to skutečný terminál:
$ bash -c '[[ -t 1 ]] && echo "real terminal"'
real terminal
$ watch -- "bash -c '[[ -t 1 ]] && echo "real terminal"'"
# ... nothing.
Mám podezření, že některé aplikace se na to (nebo podobně) dívají, aby zjistily, zda by měly zapnout barvy nebo ne.