Other than parsing git log for the date string, is there a Git native way to report the date of a certain commit?
-
2Good stuff : https://git-scm.com/docs/pretty-formats – Nevin Chen Mar 01 '16 at 05:38
7 Answers
The show command may be what you want. Try
git show -s --format=%ci <commit>
Other formats for the date string are available as well. Check the manual page for details.

- 346
- 2
- 4
- 18

- 60,452
- 11
- 85
- 78
-
25
-
46
-
12
-
@Mehrdad I'm looking to accomplish this with all the files in a `repo git ls-tree -r --name-only HEAD` sent through a loop doesn't give me a specific date-time. – DBS Apr 21 '16 at 22:02
-
12
-
8If you want another date format, you can use `git show -s --format=%cd --date=short
` (will give e.g. 2016-11-02) or `git show -s --format=%cd --date=short – amoebe Nov 02 '16 at 15:53` or `git show -s --format=%cd --date=format:%Y ` (this example will print only the year) For details see [this answer](http://stackoverflow.com/a/19742762/935676). -
1It is _significantly_ faster to use `log -1` rather than `show -s` for large merge commits so I definitely recommend using `log -1` if you are trying to find stale branches. This sped it up from hours to minutes in the case of the monorepo I'm working with right now. – marczych Jul 25 '18 at 01:54
-
-
The `git show -s` variant will sometimes output some extra information beyond the date (`Tagger: someone` and some log message), I don’t know if this is a bug in GIT or some intended behaviour, but `git log -1` does not do this. – roeland Jul 06 '22 at 23:49
If you want to see only the date of a tag you'd do:
git show -s --format=%ci <mytagname>^{commit}
which gives: 2013-11-06 13:22:37 +0100
Or do:
git show -s --format=%ct <mytagname>^{commit}
which gives UNIX timestamp: 1383740557

- 500
- 4
- 6
-
This seems to give the date of the commit a tag points to, not the date of the tag its self. – hoijui Oct 22 '21 at 06:20
If you like to have the timestamp without the timezone but local timezone do
git log -1 --format=%cd --date=local
Which gives this depending on your location
Mon Sep 28 12:07:37 2015

- 12,009
- 10
- 54
- 72
In case that you want to format the date (or hour) by yourself:
git show -s --date=format:'%Y%m%d-%H%M' --format=%cd <commit id | default is the last commit>
# example output:
20210712-1948

- 4,421
- 6
- 48
- 52
You can use the git show
command.
To get the last commit date from git repository in a long(Unix epoch timestamp):
- Command:
git show -s --format=%ct
- Result:
1605103148
Note: You can visit the git-show documentation to get a more detailed description of the options.

- 2,641
- 2
- 17
- 23
if you got troubles with windows cmd command and .bat just escape percents like that
git show -s --format=%%ct
The % character has a special meaning for command line parameters and FOR parameters. To treat a percent as a regular character, double it: %%

- 29
- 1
I know the question was asked a long time ago and I don't know which version of git this was.
For git version 2.37.3 the command
git show -s
will show the author date, not the commit date. To get the commit date of a commit use
git log -1 --format=fuller 'commit hash'

- 93
- 1
- 7