git logでコミットメッセージを検出するには--grepを使用する

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="著者名"