¿Cómo puedo lograr colores separados para los nombres de referencia actuales, locales y remotos cuando uso un formato de registro git personalizado?

16

Tengo un formato de registro de git personalizado que uso. Me he color.ui=truepuesto en mi .gitconfig. Por ejemplo, este formato simple:

git log --pretty=format:"%h %d %s" --decorate

Esto imprimiría algo como

52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message

HEAD, local, remoto se emitirá sin color en comparación con el git log --oneline --decorateque saldrá HEAD (en 'negrita cian'), local (en 'negrita verde') y remoto (en 'negrita rojo') con color. Ahora puedo envolverlo %dcon algo como lo %Cred%d%Cresetque hará que todos los nombres de referencia sean rojos.

¿Cómo puedo obtener nombres de referencia actuales, locales y remotos para que tengan colores separados cuando uso un formato personalizado con git log?

Ben Doerr
fuente
Ack, no miró el desbordamiento de la pila. Eso es muy malo sin embargo.
Ben Doerr
@VonC ¿Tal vez deberías agregar eso como respuesta?
NN
@NN tengo. En desbordamiento de pila. Sobre una de las 10 mil preguntas sobre Git.
VonC

Respuestas:

4

El git log --decoratepondrá por defecto:

  • la CABEZA en cian
  • las ramas remotas en rojo
  • la etiqueta en verde

y se puede cambiar a través de color.decorateconfig.

Pero el git log --formatno ofrecen una forma de mostrar específicamente el HEAD o los mandos a distancia o rama: los tres se visualizan a través %d, con un color posible.

- VonC en "Color en git-log"

Tom Wijsman
fuente