Git のコミット日時を修正するコマンド

gitコマンド
Git のコミット日時を修正するコマンド
Memo
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Git のコミット日時を修正するコマンドをメモします。

経緯

リモートへ push する前にローカルブランチを削除してしまい
その後再度コミットを作成したのですがコミットログを実際の作業日へ修正したかったためコマンドを調べたことがきっかけです。

環境

  • git 2.31.1

Git コマンド

コミットを確認

今回は直前のコミットの時間を変更しますので-1オプションで 1 件ログを出力します。

terminal
$ git log --pretty=fuller -1 commit 45f20eaa142ba1953733d71f6bc82ef4575e64c0 Author: XXXX.XXXX <XXXX.XXXX@gmail.com> AuthorDate: Wed Jul 14 19:02:07 2021 +0900 Commit: XXXX.XXXX <XXXX.XXXX@gmail.com> CommitDate: Wed Jul 14 19:02:07 2021 +0900

コミット時間が 2021/7/13 18:04:19 に実施されていることが確認できました。
AuthorDate と CommitDate それぞれ変更していきます。

コミット時間の変更

コミット時間を下記へ変更します。
2021/7/13 18:04:19 → 2021/7/12 18:00:00

AuthorDate の変更

$ git commit --amend --date="Mon Jul 13 18:00:00 2021 +0900"

エラーが発生したためエラーの対処についてはこちらの記事へまとめています。

解決するとエディタが立ち上がるのでメッセージ必要に応じて修正し保存します。

コミット時間を表示して変更を確認

改めてコミットの時間を変更します。

terminal
$ git log --pretty=fuller -1 commit 45f20eaa142ba1953733d71f6bc82ef4575e64c0 Author: XXXX.XXXX <XXXX.XXXX@gmail.com> AuthorDate: Tue Jul 13 18:00:00 2021 +0900 Commit: XXXX.XXXX <XXXX.XXXX@gmail.com> CommitDate: Wed Jul 14 19:02:07 2021 +0900

AuthorDateが指定した日時へ更新されていることが確認でいました。

CommitDate の変更

続いて下記コマンドでCommitDateを変更します。

terminal
$ git rebase HEAD~1 --committer-date-is-author-date Successfully rebased and updated refs/heads/master.

コミット時間を表示して変更を確認

改めてコミットの時間を変更します。

terminal
$ git log --pretty=fuller -1 commit 45f20eaa142ba1953733d71f6bc82ef4575e64c0 Author: XXXX.XXXX <XXXX.XXXX@gmail.com> AuthorDate: Tue Jul 13 18:00:00 2021 +0900 Commit: XXXX.XXXX <XXXX.XXXX@gmail.com> CommitDate: Tue Jul 13 18:00:00 2021 +0900

AuthorDateに合わせてCommitDateが変更されていることが確認できました。

終わりに

最後までご覧いただきありがとうございます。
この記事ではGit のコミット日時を修正するコマンドについて紹介させていただきました。

これからも皆様の開発に役立つ情報を提供していきたいと考えています。
今後ともよろしくお願いいたします。