git-shift: Changing commit timestamps in Git

By Akinori. Filed in Shell Script  |  
TOP del.icio.us digg

Git is known to be so flexible that one can even fix or delete old commits, but what would you do if you wanted to change the timestamp of a particular commit? This need can arise for various reasons, such as when a merged commit has picked the unwanted timestamp on squash, when a contributor’s (or your notebook’s) machine clock was obviously far out of sync, and so on.
git-shift is the tool I wrote to change dates (timestamps) of specified commits in a git repository.  The choice of the name sounds a bit too bold, so maybe I will rename it later—but anyway.
The usage is simple; specify the amount of time you want to shift timestamps by, and a list of commit IDs you want to change timestamps of. (Range notation is currently not supported)
e.g. to move timestamps of commits identified by the IDs f9e8d7c6 and 579acf two hours backwards:

$ git-shift -2h f9e8d7c6 579acf

Use it wisely and enjoy your life, night and day workers! :D

Related Posts

3 comments to “git-shift: Changing commit timestamps in Git”

  1. Comment by Cody Robbins:

    武者さん、OS Xで使おうとすると、「line 86: `git-shift’: not a valid identifier」のメーサッジがあります。解決は知りますか?

  2. Comment by Cody Robbins:

    ああ、解いたと思います。問題は「git-shift」がshでだめの機能名前だと思います。「git-shift」を「git_shift」に変更すれば、作動します。

  3. Comment by Akinori:

    あー、うっかりでした。直しました!

Leave a Reply