Skip to content
Mash+

Gitのログから最終更新日を取得する

Astro で Web サイトを作成中に、最終更新日を自動更新して表示したくなり AI に作成してもらった。その際に出力された次のコマンドが何をしているのか調べた。

Terminal window
git log -1 --format=%ai -- "${filePath}"

コマンドの解説

git log はコミットログを表示するコマンドです。

オプション

  • -1 : 出力するコミットの数を指定します。今回は最新の 1 件のみです。
  • --format=%ai : コミット日時を YYYY-MM-DD HH:MM:SS +/-HHMM のようなフォーマットで表示します。%aia は Author(作者)、i は ISO 8601 のようなフォーマットを表しています。似ているフォーマットに %aI があるが、こっちは厳密な ISO 8601 YYYY-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(コミッター)の日時を取得する。

参考