きり丸の技術日記

技術検証したり、資格等をここに残していきます。

Gitのコミット時間を変更する(git commit --amend --date="`date -R`")(git squash と組み合わせる)

小ネタ。

環境

  • Git
    • git version 2.24.1.windows.2

対応

次のコマンドを実行すると、最新のコミット更新時間が現在時刻になります。また、特定の時間に更新したい場合は、Git internal format、RFC2822、ISO 8601形式のどれかで渡してください。

# 現在時刻で更新
git commit --amend --date="`date -R`"

# 特定の日時で更新
git commit --amend --date="Wed Feb 18 22:34:51 2022 +0900"

終わりに

私は、作業中は別ブランチにして、ちょっとでも変更したら別ブランチにコミットを積んでいます。最終的には全部のコミットをsquashして、元のブランチにcherry-pickすることで、Gitネットワークをきれいに保つことを意識しています。

ただ、この方法には問題があり、コミットの更新時間が一番初めのコミットにまとめられてしまいます。

Gitネットワークはきれいでも、Gitの更新履歴が順序よく並ばなくなってしまうので、問題視していました。今回の記事により、squashしたコミットの更新時間を最新化できるので、更新履歴に違和感を感じることがなくなりました。

なお、普段よく使用しているIntelliJ IDEAでは、コミット時間の変更はできそうになかったです。GUIで変更できればよかったのですが…。とりあえず、方法が分かってよかったです。

参考情報