【Github】コミットの日時を変更して草が生えてる場所をずらす方法
技術約3分で読めます

この記事でわかること
- コミットには AuthorDate と CommitDate の2つの日時があり、両方を揃えないと草の位置が変わらないこと
- git log --pretty=fuller で両方の日時を確認する方法
- -amend と rebase --committer-date-is-author-date の使い分け
Git の基本操作(commit / rebase / push)。履歴を書き換えるので、共同作業しているブランチでは行わないこと
概要
この記事では、Git のコミット日時を後から変更する方法をまとめています。
プライベートの都合で PC に触れない日が続くことがあるのですが、それでも草は生やしておきたい。同じことを考えている人向けです。
注意
履歴の書き換えなので、共同作業しているブランチでは行わないでください。push 済みのコミットを書き換えると、他の人の履歴と食い違って conflict の原因になります。個人のリポジトリに留めるのが無難です。
コミットには日時が2つある
ここが分かっていないと、片方だけ直して「変わらない」と悩むことになります。
| 種類 | 何の日時か | 変え方 |
|---|---|---|
| AuthorDate | コミットを書いた日時 | git commit --amend --date |
| CommitDate | コミットが記録された日時 | git rebase --committer-date-is-author-date |
git log は既定で AuthorDate しか表示しないので、--pretty=fuller を付けて両方を確認します。
Tips
GitHub の草が見ているのは CommitDate です。
--amend --date で AuthorDate だけ変えても草の位置は動きません。両方を揃える必要があるのは、このためです。手順
今回は日付と曜日を変更し、1日前にコミットしたことにします。
コミット日時の確認
git log --pretty=fullerAuthorDate と CommitDate の2行が出ます。
AuthorDate の修正
git commit --amend --date="Tue Feb 27 01:15:23 2024 +0900"CommitDate の修正
git rebase HEAD~1 --committer-date-is-author-dateAuthorDate に合わせて CommitDate を書き換えます。ここまでやって、はじめて草の位置が動きます。
確認
git log --pretty=fuller両方の日時が変わっていることを確認したら、GitHub に push します。プロフィールページで草が生えていれば成功です。
まとめ
- コミットには AuthorDate と CommitDate の2つの日時がある
git log --pretty=fullerで両方を確認できる- GitHub の草は CommitDate を見るので、
--amend --dateだけでは動かない - 履歴の書き換えなので、個人のリポジトリに留めること
なお、「日付をずらす」ではなく「メールアドレスの紐づけが外れて過去の草が一気に消えた」場合は原因も対処も別物です。そちらは別記事の コミットの一括変更で草を生やす方法 を見てください。
参考リンク
更新履歴
- コードブロックの言語指定を bash に修正。概要・前提条件を追記


