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

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Git のコミット日時を修正するコマンドの使い方を紹介します。
経緯
リモートへ push する前にローカルブランチを削除してしまい
その後再度コミットを作成したのですがコミットログを実際の作業日へ修正したかったためコマンドを調べたことがきっかけです。
環境
- git 2.31.1
Git コマンド
コミットを確認
今回は直前のコミットの時間を変更しますので-1
オプションで 1 件ログを出力します。
zsh$ 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 の変更
zsh$ git commit --amend --date="Mon Jul 13 18:00:00 2021 +0900"
エラーが発生したためエラーの対処についてはこちらの記事へまとめています。
解決するとエディタが立ち上がるのでメッセージ必要に応じて修正し保存します。
コミット時間を表示して変更を確認
改めてコミットの時間を変更します。
zsh$ 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を変更します。
zsh$ git rebase HEAD~1 --committer-date-is-author-date
Successfully rebased and updated refs/heads/master.
コミット時間を表示して変更を確認
改めてコミットの時間を変更します。
zsh$ 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が変更されていることが確認できました。
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来