Update git commit author date when amending

Git

Git Problem Overview


I found myself amending my commits quite often. I don't stash so much because I tend to forget I did so, especially when I want to save what I did before I leave or before a weekend, so I do a "draft" commit. Only thing is, when I amend the commit, it is still set to the original author date. Is there a (simple) way to update it when amending?

Git Solutions


Solution 1 - Git

You can change the author date with the --date parameter to git commit. So, if you want to amend the last commit, and update its author date to the current date and time, you can do:

git commit --amend --date="$(date -R)"

(The -R parameter to date tells it to output the date in RFC 2822 format. This is one of the date formats understood by git commit.)

Solution 2 - Git

As of Git v2.1.4 (tested on Debian 8 (Jessie))

git commit --amend --date=now

Solution 3 - Git

Another way to do this is

git commit --amend --reset-author

This does change the commit author as well as the date - but if it was originally your unpushed commit then that's a no-op.

You can also add --no-edit if you want to update the date on multiple commits but you want the commit messages to stay untouched. This way you will not be prompted to edit the message for each commit.

Solution 4 - Git

I like Mark's answer and used it myself several times, but now I'm on OS X and date -R is not supported. But everything is much easier than original answer made us think, just use empty string!

git commit --date= --amend

UPDATE:

You can also try

git commit --date="$(date)" --amend

Or in new versions of git

git commit --date=now --amend

Solution 5 - Git

I created this npm package if someone still looking for a simple way to change dates of multiple commits.

https://github.com/bitriddler/git-change-date

Usage:

npm install -g git-change-date
cd [your-directory]
git-change-date

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionksolView Question on Stackoverflow
Solution 1 - GitMark LongairView Answer on Stackoverflow
Solution 2 - GitKamalView Answer on Stackoverflow
Solution 3 - GitRupView Answer on Stackoverflow
Solution 4 - GitJLarkyView Answer on Stackoverflow
Solution 5 - GitKareem ElbahrawyView Answer on Stackoverflow