Salida de color del command git específico

Estoy escribiendo una herramienta que ejecuta los commands de git y captura la salida, y me gustaría tener la salida de color. Git se da count de que la herramienta no es una terminal, por lo que el color.ui debería estar configurado para always . Realmente no quiero configurar esto en el file de configuration global / repo, ya que interferiría con otros progtwigs que usan git. El libro de git explícitamente desalienta eso, también:

Rara vez querrás color.ui = siempre. En la mayoría de los escenarios, si desea códigos de color en su salida networkingirigida, puede pasar una bandera de color al command Git para forzarlo a usar códigos de color. La configuration color.ui = true es casi siempre lo que querrá usar.

Lamentablemente, no todos los commands de git admiten la bandera --color , especialmente git status y git pull .

Entonces, ¿cómo fuerzo los colors para un command de git? ¿Existe una variable de configuration que pueda establecer, por ejemplo, para un file de configuration de git personalizado?

Creo que debería usar un PTY maestro / esclavo para comunicarse con el subcommand git lugar de un conducto. Esto hace que git piense que se ejecuta en una session interactiva, no en una tubería.

Puede usar la opción -c para anular los valores de configuration. Esto funciona para todos los commands de git. Por ejemplo:

 git -c color.ui=always status > status_file 

muestra los códigos de color en el file. No ve a nadie, por lo que no intentará paginar.