Reputation: 1011
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
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
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
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
Reputation: 153812
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
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:
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
Doing git pull
s 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"
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
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
Reputation: 3182
git log -1 --format=%ct
1605103148
Note: You can visit the git-log documentation to get a more detailed description of the options.
Upvotes: 9