git logでコミットメッセージをgrepで検出
Gitではgit logコマンドを使用することでGitリポジトリのコミット履歴を表示できます。
git log
コミット履歴を1行で表示する場合は「--oneline」を付けます。
git log --oneline
Gitを使用する際の基本なので、Gitを普段使用している方なら知らない人はいないでしょう。
しかし、コミットメッセージの検索に関しては、たまに「--oneline」と「grep」を組み合わせて以下のように検索している人を見かけます。
$ git log --oneline | grep "README" ace646f6 Docs: Fix module links in the package README bcd9c2bc Docs: Remove stale badge from README edccabf1 Docs: Update the README of the published package 01819bc3 Docs: Update webpack website in README 73415da2 Docs: Use https for hyperlinks in README
しかし、「| grep」でgrepをすると以下の問題が発生するため、この方法でgrepをしてはいけません。
- 検索範囲が限定される
- 大文字と小文字が区別されない
- コミットハッシュに色が付かない
git logでは--grepを使用する
コミットメッセージの検索する際は以下のように--grepを使用して検索するのが正しいです。
git log --grep="README"
git log --oneline --grep="README"
git logには特定の期間や著者を指定したオプションも用意されているので、これらを併用するとコミットメッセージが多くても、より検出しやすくなります。
期間を指定して検索
git log --since="2023-01-01" --until="2023-12-31
著者を指定して検索
git log --author="著者名"