How to configure 'git log' to show 'commit date'
You can use --pretty=format
and use %cr
for commit date relative.
For example:
$ git log --graph --pretty=format:'%C(auto)%h%d (%cr) %cn <%ce> %s'
You can define an alias in git to make this easier to use. I have the following in my .gitconfig
:
[alias]
# see `git help log` for detailed help.
# %h: abbreviated commit hash
# %d: ref names, like the --decorate option of git-log(1)
# %cn: commiter name
# %ce: committer email
# %cr: committer date, relative
# %ci: committer date, ISO 8601-like format
# %an: author name
# %ae: author email
# %ar: author date, relative
# %ai: author date, ISO 8601-like format
# %s: subject
# my awesome git log replacement
lol = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s\"
# same as above, but ISO date
lold = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s\"
# using build-in standards
lol2 = log --oneline --graph --decorate
# shows branches and their last commits
lol3 = log --all --graph --decorate --oneline --simplify-by-decoration
On Linux or similar systems, you can use single-quotes '
instead of double-quotes "
:
[alias]
lol = log --graph --pretty=format:'%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s'
With this, simply run git lol
, or the other variants to see the pretty output.
Here's the output of git lol --simplify-by-decoration
:
- It looks good. :)
lol
is easier to type thanlog
, and sounds better too.- Also gives you access to the regular
git log
if you ever need it.
- Also gives you access to the regular
- Your eyes can scan contents quickly by the different colors.
- Names and e-mails are very useful for large projects/org with many contributors.
- Using default coloring for hash/ref as it is already pretty good.
Here's the output of git lold
with dates in ISO format. Useful to see the exact date/time a commit is made, with the bonus of being able to see the contributor's timezone easily.
Edit 2020-06: Added screenshots. Updated to use %C(auto)
(auto/default coloring) for %h
(commit hash) and %d
(ref names). Added %cn
(commiter name) in addition to email.
There are several options to pretty print the date. Probably the easiest is to just use one of the pre-baked --pretty
formats, like git log --pretty=fuller
- this will show both dates. If you want to see only one date, but make it the commit date, you can use git log --format=<some stuff>
. All the allowable codes for defining the format are documented in git help log
. The commit date is one of %cd
, %cD
, %cr
, %ct
or %ci
, depending on what format you prefer it in.
If it's something you want to do often, put it in an alias or write an auxiliary script to save on typing.
I prefer this format, doesn't include author name and includes actual date for commit.
git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset %C(green)%Creset %s" --date=short