Gitのログから最終更新日を取得する
Astro で Web サイトを作成中に、最終更新日を自動更新して表示したくなり AI に作成してもらった。その際に出力された次のコマンドが何をしているのか調べた。
git log -1 --format=%ai -- "${filePath}"コマンドの解説
git log はコミットログを表示するコマンドです。
オプション
-1: 出力するコミットの数を指定します。今回は最新の 1 件のみです。--format=%ai: コミット日時をYYYY-MM-DD HH:MM:SS +/-HHMMのようなフォーマットで表示します。%aiのaは Author(作者)、iは ISO 8601 のようなフォーマットを表しています。似ているフォーマットに%aIがあるが、こっちは厳密な ISO 8601YYYY-MM-DDTHH:MM:SS+/-HHMMフォーマットになる。- 補足:
%ciを使うと Committer(コミッター)の日時を取得します。そのコミットがリポジトリに反映された日時です。
- 補足:
-- "${filePath}": ファイルのパスを指定。--は、コマンドのオプションとファイルパスを明確に区切る記号です。
--format=%ad --date=iso との比較
--format=%ad --date=iso は --format=%ai と同じ結果を返しました。--format=%ai の方が簡潔でよさそうです!
まとめ
git log -1 --format=%ai -- "${filePath}"でファイルの最終更新日を取得できる。-1は最新の 1 件のみを出力する。--format=%aiは Author(作者)の日時、--format=%ciは Committer(コミッター)の日時を取得する。