Jak mogę uzyskać osobne kolory dla bieżących, lokalnych i zdalnych nazw referencji, używając niestandardowego formatu dziennika git?

17

Mam niestandardowy format dziennika git, którego używam. Mam color.ui=trueustawione w moim .gitconfig. Na przykład ten prosty format:

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

Spowoduje to wydrukowanie czegoś podobnego

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

HEAD, lokalny, zdalny zostanie wyprowadzony bez koloru, w porównaniu do git log --oneline --decoratektórego wyposaży HEAD (pogrubiony cyjan), lokalny (pogrubiony zielony) i zdalny (pogrubiony czerwony) kolorem. Teraz mogę owinąć %dcoś, %Cred%d%Cresetco spowoduje, że wszystkie nazwy referencyjne będą czerwone.

Jak mogę uzyskać bieżące, lokalne i zdalne nazwy referencyjne, aby miały osobne kolory, gdy używam niestandardowego formatu z git logiem?

Ben Doerr
źródło
Nie sądzę, aby było to możliwe: stackoverflow.com/questions/5889878/color-in-git-log/…
VonC
Ack, nie patrzyłem na przepełnienie stosu. Ale to źle.
Ben Doerr,
@VonC Może powinieneś dodać to jako odpowiedź?
NN
@NN Mam. Po przepełnieniu stosu. Około jednego z 10 tysięcy pytań na temat Git.
VonC

Odpowiedzi:

4

git log --decoratePołoży domyślnie:

  • GŁOWA w kolorze cyjan
  • odległe gałęzie na czerwono
  • tag w kolorze zielonym

i można to zmienić przez color.decorateconfig.

Ale git log --formatnie oferują sposobu wyświetlania konkretnie przycisków HEAD lub pilotów lub gałęzi: wszystkie trzy są wyświetlane za %dpomocą jednego koloru.

- VonC na temat „Kolor w git-log”

Tom Wijsman
źródło