大文字小文字を区別した検索のテスト
このステップでは、git log --grep
が大文字小文字の区別をどのように扱うかを調べます。デフォルトでは、検索は大文字小文字を区別します。つまり、「future」と「Future」は異なるものとして扱われます。
git log --grep
を使って、大文字の「F」で始まる「Future」を検索してみましょう。
git log --grep "Future" --oneline
以前のコミットを考えると、最初のコミットメッセージ「Send a message to the Future」のみが大文字の「F」で始まる「Future」を含んでいます。出力は以下のようになるはずです。
<commit-id> Send a message to the future
「Add third message about future」というコミットは含まれていないことに注意してください。これは、小文字の「f」を使用しているためです。
次に、小文字の「f」で始まる「future」を再度検索してみましょう。
git log --grep "future" --oneline
今回は、「future」を含む両方のコミット(元のメッセージの大文字小文字に関係なく)が表示されるはずです。
<commit-id> Add third message about future
<commit-id> Send a message to the future
待ってください、これは正しくありません!前のステップで「future」を検索したときに両方のコミットが表示されました。これは、一部のシステムや設定では git log --grep
のデフォルトの動作が大文字小文字を区別しないためです。
大文字小文字を区別した検索を行うには、--i
オプション(または --ignore-case
)を使用できます。大文字小文字を区別して「Future」を検索してみましょう。
git log --grep "Future" --oneline --i
このコマンドは、検索中に大文字小文字を無視するよう Git に指示します。これで、「future」または「Future」を含む両方のコミットが表示されるはずです。
<commit-id> Add third message about future
<commit-id> Send a message to the future
これは、デフォルトの動作が異なる場合があるものの、--i
オプションを明示的に使用すると、検索が大文字小文字を区別しなくなることを示しています。厳密に大文字小文字を区別した検索が必要な場合は、通常、--i
を 使用せずに デフォルトの動作に依存します。ただし、動作が異なる可能性があるため、大文字小文字を区別しない検索には --i
オプションを意識するのが良い習慣です。
検索での大文字小文字の区別を理解することは、特にコミットメッセージの規則が異なる可能性のあるプロジェクトで、コミットを正確に見つけるために重要です。