How can one change the timestamp of an old commit in Git?

Dhskjlkakdh picture Dhskjlkakdh · Jan 18, 2009 · Viewed 338k times · Source

The answers to How to modify existing, unpushed commits? describe a way to amend previous commit messages that haven't yet been pushed upstream. The new messages inherit the timestamps of the original commits. This seems logical, but is there a way to also re-set the times?

Answer

Paul Pladijs picture Paul Pladijs · Feb 16, 2011

You can do an interactive rebase and choose edit for the commit whose date you would like to alter. When the rebase process stops for amending the commit you type in for instance:

git commit --amend --date="Wed Feb 16 14:00 2011 +0100"

Afterwards you continue your interactive rebase.

UPDATE (in response to the comment of studgeek): to change the commit date instead of the author date:

GIT_COMMITTER_DATE="Wed Feb 16 14:00 2011 +0100" git commit --amend

The lines above set an environment variable GIT_COMMITTER_DATE which is used in amend commit.

Everything is tested in Git Bash.