忘れがちなのでメモです。
直前のコミット日時を修正
現状のコミット日時を確認します。
$ git log --pretty=fuller
commit 62c6282c9b6a3f20659559a5d975dc16a33cb7cd (HEAD -> master)
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 14:04:18 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 14:04:18 2019
...
コミット時間を 15:00 へ修正することにします。
まずは、AuthorDate を修正します。
$ git commit --amend --date="Sat Sep 21 15:00:00 2019 +0900"
エディタが立ち上がるので保存して終了します。
次に、CommitDate を AuthorDate に合わせて修正します。
$ git rebase HEAD~1 --committer-date-is-author-date
CommitDate、AuthorDate 共に日時が変更されていることを確認します。
$ git log --pretty=fuller
commit d3dda0b230bf1b2c2609be6feb6fea395743b803 (HEAD -> master)
Author: zzzmisa <__@gmail.com>
AuthorDate: Sat Sep 21 15:00:00 2019
Commit: zzzmisa <__@gmail.com>
CommitDate: Sat Sep 21 15:00:00 2019
...
できた!
2 つ以上前のコミット日時を修正
現状のコミット日時を確認します。
$ git log --pretty=fuller
commit a505b00663f8c6ad964cbec3adfeacae744bc1eb (HEAD -> master)
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 14:10:57 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 14:10:57 2019
Fourth commit
commit 1338ca6d8b22ced66415cd83e39032ee199d6813
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 14:10:33 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 14:10:33 2019
Third commit
commit 7b927779cfe51ca12409ee32ac8642210a5fcbd1
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 14:10:12 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 14:10:12 2019
Second commit
...
3 つ分のコミット時間を、古いものからそれぞれ 16:00、16:01、16:02 に修正することにします。
$ git rebase -i HEAD~3
エディタが立ち上がるので、変更したいコミット、つまり今回は全てのコミットに対して、pick を edit に変えて保存します。
1 pick 7b92777 Second commit↲
2 pick 1338ca6 Third commit↲
3 pick a505b00 Fourth commit↲
↓↓↓
1 edit 7b92777 Second commit↲
2 edit 1338ca6 Third commit↲
3 edit a505b00 Fourth commit↲
edit にしたコミットを、古いものから修正していきます。
$ git commit --amend --date="Sat Sep 21 16:00:00 2019 +0900"
エディタが立ち上がるので保存して終了します。
これで、7b92777 Second commit
は修正できたので、次のコミットに移ります。
$ git rebase --continue
残り 2 つのコミットも同じように修正していきます。
$ git commit --amend --date="Sat Sep 21 16:01:00 2019 +0900"
$ git rebase --continue
$ git commit --amend --date="Sat Sep 21 16:02:00 2019 +0900"
$ git rebase --continue
最後のコミットでgit rebase --continue
すると、Successfully rebased and updated refs/heads/master.
と表示されて完了です。
次に、3 つ分のコミットについて、CommitDate を AuthorDate に合わせて修正します。
$ git rebase HEAD~3 --committer-date-is-author-date
CommitDate、AuthorDate 共に日時が変更されていることを確認します。
$ git log --pretty=fuller
commit b50f4cc93d50c94ba5d0072d4c1d4a97a4e2cb1e (HEAD -> master)
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 16:02:00 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 16:02:00 2019
Fourth commit
commit 4b1674e2794212247121269381d033bad8dc2682
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 16:01:00 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 16:01:00 2019
Third commit
commit 65baa22ac86a04825d873650930ae0bcebbc9165
Author: zzzmisa <__@mail.com>
AuthorDate: Sat Sep 21 16:00:00 2019
Commit: zzzmisa <__@mail.com>
CommitDate: Sat Sep 21 16:00:00 2019
Second commit
...
できた!