Nickolay Kondratyev
Nickolay Kondratyev

Reputation: 5211

Keep color in 'git log' when piping to 'head' (osx)

I have the following aliases in my bashrc file.

alias gl="git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
alias glh="gl | head -n 20"

Both of the aliases used to print the output of git history in color. However with the update of git to git version 2.19.1 glh stopped printing the output in color. gl still prints the output in color. Is there a way to force git log to keep the color even though it is piped to head?

OS:

ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G22010

Upvotes: 12

Views: 1246

Answers (1)

knittl
knittl

Reputation: 265191

You can either specify --color=always and pipe to another program which must interpret the color escape sequences, or you can get rid of the pipe to head and use git log -n20 directly to display only the last 20 commits. (Note that the latter could give you a different result than using head).

Upvotes: 7

Related Questions