ファイルの更新日時に Git のコミット日時を設定する

July 6, 2025 1:53

Git で pull した時のソースファイルの更新日時は pull を実行した時刻になる。コミット日時をファイルの更新日時に反映したい場合は、git log --pretty=format:%ci を使用して、ファイルごとのコミット日時を取得し、その日時で更新する。

--pretty=format の仕様は以下。
Git - pretty-formats Documentation

%ci
committer date, ISO 8601-like format

全ファイルを一括で更新する Power Shell。
※ Git リポジトリのルートフォルダに移動してから実行

Get-ChildItem -Recurse | ForEach-Object {$s=git log --pretty=format:%ci -n1 $_.FullName; if (!$_.PSIsContainer -and $s -ne $null){$s + ' ' + $_.FullName; $t=[DateTime]$s; $_.LastWriteTime=$t;}}