実施したいことと、結論

実施したいことは、記事のタイトルにあるように、Gitで過去の日時にコミットを作成することです。結論を言うと以下のように、日時を変更し、コミットを行うことで、簡単にコミット日時を変更することができます。 sudo date -s "YYYY/MM/DD HH/MM/SS" && git commit -m "messege"

使用例

gitにバージョン管理を移行

gitを使う前まではバージョンを管理するために、ディレクトリをまるまるコピーしディレクトリ名を日付にしたりしていた人は多いと思います。具体的には以下のディレクトリ構成などをさしています。

./workspace/...
./backup/2023-10-09/...
./backup/2023-10-10/...
./backup/2023-10-11_ver1/...
./backup/2023-10-11_ver2/...

このようなバージョンの管理から、gitを使用したバージョン管理に移行する方法を紹介します。完全に我流で、もっと正しいやり方があるかも知れませんが、ご了承ください。
結論を述べると以下のような手順でできます。

  1. 作業用ディレクトリを作成し、git initを実行
  2. 作業用ディレクトリに、バージョン管理に追加したいディレクトリやファイルをコピーする。バージョン管理したいディレクトリやファイルは日付が若い順から行う。
  3. git addで先程コピーしてきたディレクトリやファイルをgitのインデックスに追加する
  4. sudo date -s "YYYY/MM/DD HH/MM/SS" && git commit -m "messege"で任意の日時を指定し、コミットを行う
  5. 2の作業に戻り、次に管理したいディレクトリやファイルを作業用ディレクトリにコピーする

その他の用途

  • コミットを行うのを忘れており、何日も立ってしまった時
  • 過去のコミットからブランチを作成し、そのブランチで、過去の日時にコミットしたい時

などなどまだまだたくさん応用ができると思います。

注意点

コミット間の前後が時系列順になっていないようなものも簡単に作れてしまうので、注意です。
操作を謝ると、以下の写真のように、OctoberからSeptemberに戻り、またOctoberに戻るようなコミットログになってしまいます。
git log