Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

git

git-log

macos

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
like image 364
Nickolay Kondratyev Avatar asked Nov 19 '18 19:11

Nickolay Kondratyev


1 Answers

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).

like image 57
knittl Avatar answered Nov 07 '22 19:11

knittl