理系学生日記

おまえはいつまで学生気分なのか

Gitで変更のあったファイル一覧をコミットメッセージや空行なしで抽出する

課題

ファイル一覧の抽出については--name-onlyを使うのはよく知られているテクニックです。 例えば以下では、一週間前からコミットされたファイルを抽出しています。しかし、コミットハッシュやコミットメッセージは不要です。どうしたものでしょう。

$ git log --name-only --oneline --since $(date -u -d '1 week ago' +%s)
f6c0a0c (HEAD -> master, origin/master, origin/HEAD) fix: 対象ファイル抽出をスクリプト化
Makefile
scripts/check.sh
scripts/publish.sh
34d938a update: last_publish_time
last_publish_time
296fcd7 add: 「プログラミングTypeScript」を読んだ
kiririmode.hatenablog.jp/entry/20211002/1633147962.md
96ff093 upgrade: CI用Node環境をNode v16へアップグレード
.github/workflows/blog.yml
package-lock.json
062c0d4 add: 他者から与えられたミッションに身を投じても良いんじゃないかという仮説
kiririmode.hatenablog.jp/entry/20211002/1633144073.md

解法

--pretty="tformat:"を使うと、楽に消せることに気づきました。

git log --name-only --pretty="tformat:" --since $(date -u -d '1 week ago' +%s)
Makefile
scripts/check.sh
scripts/publish.sh
last_publish_time
kiririmode.hatenablog.jp/entry/20211002/1633147962.md
.github/workflows/blog.yml
package-lock.json
kiririmode.hatenablog.jp/entry/20211002/1633144073.md