gitで扱える最大日付と最小日付
編集:2023.08.03
まとめ
gitは、(UTC時間)
1970-01-01 00:00:00 ~ 2099-12-31 23:59:59
の範囲で使えます。
gitの通常使用で問題は発生しませんが、ほかのバージョン管理システムから移行する際は注意が必要です。
コマンドラインから日本時間で日付指定したい場合は、
'2023-08-03 00:00:00 +0900' のようにします。
【gitで扱える最大日付】
32bit
2038-01-19 03:14:07
コミットの日付指定は2099-12-31 23:59:59までできるが、2038年1月19日03:14:07(UTC)を超えた場合、オバーフローで自動的にDate: Thu Jan 1 00:00:00 1970 +0000になる。
32ビットの符号付き整数で表されるUnix時間の最大値は、2038年1月19日03:14:07(UTC)です。この時刻を超えると、32ビットの符号付き整数がオーバーフローして負の値になります。これは「2038年問題」として知られています。
64bit
2099-12-31 23:59:59
【gitで扱える最小日付】
1970-01-01 00:00:00 +0000
入力として受け付ける最大日付は、
ソースコードのgit/date.c:time_t tm_to_time_t(const struct tm *tm)にコメントとして書かれています
確認方法 その2(人海戦術)
空フォルダを用意してコミットするだけ。
手順
1. フォルダを用意する
mkdir test
2. フォルダをshellやgitシェルなどで開く
cd test
3. コミットする
問題ない場合は、
On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)
コミットできない場合は
ほんとうにコミットしたい場合は、 --allow-empty を加える。
今回はテスト目的なのであえてつけていない。
コミットとgit logすると実際の日付がわかる。
キーワード
Maximum and minimum dates that can be handled by git
git 最大日付 最小日付 日付の範囲