How can I configure git log to show commit date instead of author date?
5 Answers
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.
2 Comments
%cd can we get only year and month?--date= option. (as git help log describes under the %cd placeholder). A possibly useful option to explicitly ask for local year, month, date, hours and minutes is: --date='format-local:%Y-%m-%d %H:%M'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. :)
lolis easier to type thanlog, and sounds better too.- Also gives you access to the regular
git logif 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.
3 Comments
git log --graph --pretty=format:\"%C(yellow)%h%Creset%C(cyan)%C(bold)%d%Creset %C(cyan)(%cr)%Creset %C(green)%ce%Creset %s\" bash: syntax error near unexpected token `('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 1 Comment
Might be useful to someone. I was looking for date and time stamps with the author name.
git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset %C(yellow)%cn%Creset %C(green)%Creset %s" --date=default 1 Comment
%ad% with %cd% to view commit-date. ad is for author date.I had a look in the docs today (2024-07-12) and there are plenty of options for the date. The general alias I use is:
git --no-pager log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cI) %C(bold blue)<%an>%Creset' The part %Cgreen(%cI) determins the date and %Cgreen just means it is printed in green. Now you can replace cI by the following options:
%cd committer date (format respects --date= option) <- you can define a custom format with this one 👍 %cD committer date, RFC2822 style %cr committer date, relative %ct committer date, UNIX timestamp %ci committer date, ISO 8601-like format %cI committer date, strict ISO 8601 format <-- very compact and shows everything %cs committer date, short format (YYYY-MM-DD) %ch committer date, human style (like the --date=human option of git-rev-list(1)) 


git show --pretty=fuller HEADto se an example). For local development, these are usually the same, but for patches added via e-mail or other mechanisms, they can differ, where the AuthorDate is the date the patch was generated, and the CommitDate being when it was actually applied to the repository.git logshow only the commit date, nothing else