メインコンテンツへスキップ
kt-tech.blog

【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日前にコミットしたことにします。

コミット日時の確認

Bash
git log --pretty=fuller

AuthorDateCommitDate の2行が出ます。

AuthorDate の修正

Bash
git commit --amend --date="Tue Feb 27 01:15:23 2024 +0900"

CommitDate の修正

Bash
git rebase HEAD~1 --committer-date-is-author-date

AuthorDate に合わせて CommitDate を書き換えます。ここまでやって、はじめて草の位置が動きます。

確認

Bash
git log --pretty=fuller

両方の日時が変わっていることを確認したら、GitHub に push します。プロフィールページで草が生えていれば成功です。

まとめ

  • コミットには AuthorDateCommitDate の2つの日時がある
  • git log --pretty=fuller で両方を確認できる
  • GitHub の草は CommitDate を見るので、--amend --date だけでは動かない
  • 履歴の書き換えなので、個人のリポジトリに留めること

なお、「日付をずらす」ではなく「メールアドレスの紐づけが外れて過去の草が一気に消えた」場合は原因も対処も別物です。そちらは別記事の コミットの一括変更で草を生やす方法 を見てください。

参考リンク

更新履歴

  1. コードブロックの言語指定を bash に修正。概要・前提条件を追記