How can I achieve separate colors for current, local, and remote ref names when using a custom git log format?

17

2

I have a custom git log format that I use. I have color.ui=true set in my .gitconfig. For example this simple format:

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

This would print something like

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

HEAD, local, remote will be output without color compared to git log --oneline --decorate which will outupt HEAD (in 'bold cyan'), local (in 'bold green') and remote (in 'bold red') with color. Now I can wrap the %d with something like %Cred%d%Creset which will cause all ref names to be red.

How can I get current, local, and remote ref names to have seperate colors when using a custom format with git log?

Ben Doerr

Posted 2011-09-21T00:31:01.537

Reputation: 478

I don't think it is possible: http://stackoverflow.com/questions/5889878/color-in-git-log/5892582#5892582

– VonC – 2011-09-21T03:58:20.320

Ack, didn't look on stack overflow. That's too bad though. – Ben Doerr – 2011-09-21T04:27:56.420

@VonC Maybe you should add that as an answer? – N.N. – 2011-09-21T20:53:25.143

@N.N. I have. On Stack Overflow. About one of the 10 thousands questions on Git. – VonC – 2011-09-21T21:06:19.890

Answers

12

You can now use %C(auto) as of git 1.8.3, according to this Atlassian blog post;

git log --format=format:'%h%C(auto)%d%C(reset) %s (%an, %ar)'

gives

enter image description here

— Again, courtesy of VonC on "Color in git-log", reposted here for the convenience of inbound googlers.

Caspar

Posted 2011-09-21T00:31:01.537

Reputation: 983

4

The git log --decorate will put by default:

  • the HEAD in cyan
  • the remote branches in red
  • the tag in green

and can be changed through color.decorate config.

But the git log --format don't offer a way to display specifically the HEAD or remotes or branch: all three are displayed through %d, with one color possible.

VonC on "Color in git-log"

Tamara Wijsman

Posted 2011-09-21T00:31:01.537

Reputation: 54 163