I use the following script:
git log --merges --first-parent master
--pretty=format:"%h %<(10,trunc)%aN %C(white)%<(15)%ar%Creset %C(red bold)%<(15)%D%Creset %s"
Explaining each argument:
--merges
: only "merge" commits (more than 1 parent);
--first-parent master
: only merges applied to master
. This removes the entries where someone merged master
into their branches;
--pretty-format
: applies the following formatting:
%h
: the commit short hash;
%<(10,trunc)%aN
: author name, truncated at 10 chars;
%<(15)%ar
: the relative commit time, padded to 15 chars;
%<(15)%D
: the tag names, also padded to 15 chars;
%s
: first line of the commit message.
The result is pretty satisfying:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…