Agora você pode usar %C(auto) do git 1.8.3, de acordo com este post do blog da Atlassian ;
git log --format=format:'%h%C(auto)%d%C(reset) %s (%an, %ar)'
dá

-Novamente,cortesiade
Eu tenho um formato de log git personalizado que eu uso. Eu tenho color.ui=true definido no meu .gitconfig . Por exemplo, este formato simples:
git log --pretty=format:"%h %d %s" --decorate
Isso imprimiria algo como
52a41e0 (HEAD, local) Commit message foo
185bd17 (remote) The commit message
CABEÇA, local, remota será enviada sem cor em comparação com git log --oneline --decorate , que irá ultrapassar CABEÇA (em negrito ciano), local (em negrito verde) e remota (em negrito vermelho) com cor. Agora posso envolver o %d com algo como %Cred%d%Creset , o que fará com que os nomes das todas refs sejam vermelhas.
Como posso obter nomes de referência atuais, remotos e locais para ter cores separadas ao usar um formato personalizado com git log?
Agora você pode usar %C(auto) do git 1.8.3, de acordo com este post do blog da Atlassian ;
git log --format=format:'%h%C(auto)%d%C(reset) %s (%an, %ar)'
dá

-Novamente,cortesiade
The
git log --decoratewill put by default:
- the HEAD in cyan
- the remote branches in red
- the tag in green
and can be changed through
color.decorateconfig.But the
git log --formatdon't offer a way to display specifically theHEADor remotes or branch: all three are displayed through%d, with one color possible.