Search code examples
gitgit-log

Color in git-log


When you run git log --decorate --pretty=oneline the output will have entries like (HEAD, refs/published/master, master) with coloration.

I also have the following in my gitconfig:

[color "branch"]
    current = yellow reverse
    local = yellow
    remote = green

How do you replicate those colors when doing a custom format like the following?

git log --decorate --stat --graph --pretty=format:"%d %Cgreen%h%Creset (%ar - %Cred%an%Creset), %s%n"

Solution

  • As of git 1.8.3 (May 24, 2013), you can use %C(auto) to decorate %d in the format string of git log.

    From the release notes:

     * "git log --format" specifier learned %C(auto) token that tells Git
       to use color when interpolating %d (decoration), %h (short commit
       object name), etc. for terminal output.)