Narendra Vadnere
Narendra Vadnere

Reputation: 1011

How do I get last commit date from git repository?

I need the last commit date in git. This means the latest update date in my program.

I used the command : $ git log -1 but this command will give me the date from the local repository. Rather I need date from remote repository.

I tried some commands as follow.

git log -n 1 origin/Sprint-6.
git rev-parse --verify HEAD

Upvotes: 101

Views: 89488

Answers (6)

Divya Nambiar
Divya Nambiar

Reputation: 149

git log -1 will give you the Merge id, Author and Date

git log -1 --format=%cd 

Output: Wed Apr 13 15:32:54 2022 +0530

We can format the date as below:

git --no-pager log -1 --pretty='format:%cd' --date='format:%Y-%m-%d %H:%M:%S'

Output: 2022-04-13 15:32:54

Upvotes: 12

Abdull
Abdull

Reputation: 27812

Using git version 2.39.2 .

As I set up my ~/.gitconfig with showSignature = true, executing git log -1 --format=%cI will additionally include commit signature information, e.g.

Good "git" signature for [email protected] with RSA key SHA256:abcd
2023-04-14T20:02:23+02:00

To remove the commit signature information, add the --no-show-signature flag, e.g. git log --no-show-signature -1 --format=%cI:

2023-04-14T20:02:23+02:00

Upvotes: 1

FredG
FredG

Reputation: 869

Another oneliner for Linux, get UTC ISO 8601 time formatted up to the minutes:

TZ=utc date -d @$(git log -1 --format=%ct) --iso-8601=m

Gives 2022-12-07T10:01+00:00

Upvotes: 4

Eric Leschinski
Eric Leschinski

Reputation: 153812

Get the last commit date:

You want the "repository wide last commit date for a given git user and git project, for a given branch. For example the date is shown at the top when you visit your repo and go to commits -> master for example:

https://github.com/sentientmachine/TeslaAverageGainByMonthWeekDay/commits/master

Get the last local commit date in git using terminal

Use git help log for more info on format codes to pass to --format to tell git log what kind of data to fetch.

The last commit date in git:

git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 07:40:52

But as you pointed out, you have to run that command on the machine that performed the last commit. If the last commit date was performed on another machine, the above command only reports local last commit... So:

Or Repository wide: Get the last git commit date

Same as above, but do a git pull first

git pull; 
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 09:15:10

Or use the JSON API:

Doing git pulls is very slow and you're banging GitHub with a heavy operation. Just query the GitHub rest api:

#assuming you're using github and your project URL is visible to public:
# https://github.com/yourusername/your_repo_name

#then do:
curl https://api.github.com/repos/yourusername/your_repo_name/commits/master

That blasts you in the face with a screen full of json, so send it your favorite json parser and get the field called date:

curl https://api.github.com/repos/<your_name>/<your_repo>/commits/master 2>&1 | \
grep '"date"' | tail -n 1
#prints "date": "2019-06-05T14:38:19Z"

From comments below, gedge has handy dandy improvements to incantations:

git log -1 --date=format:"%Y/%m/%d %T" --format="%ad"
2019/11/13 15:25:44

Or even simpler: ( https://git-scm.com/docs/git-log/1.8.0 )

git --no-pager log -1 --format="%ai"
2019-12-13 09:08:38 -0500

Your choices are north, south, east, and "Dennis".

Upvotes: 57

vesperto
vesperto

Reputation: 883

Late to the party but here's how to get the UNIX timestamp of the latest remote commit:

git log -1 --date=raw origin/master | grep ^Date | tr -s ' ' | cut -d ' ' -f2

Upvotes: 1

Keshav Lodhi
Keshav Lodhi

Reputation: 3182

To get the last commit date from git repository in a long(Unix epoch timestamp)

  • Command: git log -1 --format=%ct
  • Result: 1605103148

Note: You can visit the git-log documentation to get a more detailed description of the options.

Upvotes: 9

Related Questions