実現すること
Gitのリモートリポジトリに任意の日時のコミットを作ります。
Gitには、Commit Date, Author Dateがあるため、両方変更します。
手順
- ローカルリポジトリにコミット
- PCの時刻を変更
Commit Dateはammendした時刻になります。ammendする前にPCの時刻を変更しておきます。
- ローカルリポジトリのコミットを任意の日時に変更
Author Dateの変更は"--date"オプションをつけて"--ammend"します。
- ローカルリポジトリをリモートにプッシュ
※ Commit Date, Author Date共に変更する場合はPCの時刻変更だけでOKです。
動作確認環境
- macOS High Sierra
- git version 2.13.5
任意の日時に変更する方法
$ git commit --amend --date "Fri, 10 Nov 2017 14:33:41 +0900"
現在の日時に変更する方法
$ git commit --amend --date "`date -R`"
リモートリポジトリの過去の履歴の書き換え方法
$ git rebase -i <変更したいコミットの1つ前のコミットID>
修正したいコミットをpickからeditに変更
$ git commit --amend --date "`date -R`"
$ git rebase --continue
ローカルの履歴書き換え作業を必要回数繰り返す。
リモートのブランチを削除してからプッシュ。
チームメンバーには強制プルしてもらう。
$ git reset --hard origin/<ブランチ名>