Teste de Pesquisa Case-Sensitive (Sensível a Maiúsculas e Minúsculas)
Nesta etapa, exploraremos como git log --grep lida com a distinção entre maiúsculas e minúsculas (case sensitivity). Por padrão, a pesquisa é sensível a maiúsculas e minúsculas, o que significa que "future" é diferente de "Future".
Vamos tentar pesquisar por "Future" (com F maiúsculo) usando git log --grep:
git log --grep "Future" --oneline
Com base em nossos commits anteriores, apenas a primeira mensagem de commit "Send a message to the Future" contém "Future" com F maiúsculo. A saída deve ser semelhante a esta:
<commit-id> Send a message to the future
Observe que o commit "Add third message about future" não está incluído porque usa "f" minúsculo.
Agora, vamos tentar pesquisar por "future" (com f minúsculo) novamente:
git log --grep "future" --oneline
Desta vez, ambos os commits que contêm "future" (independentemente da capitalização na mensagem original) devem ser exibidos:
<commit-id> Add third message about future
<commit-id> Send a message to the future
Espere, isso não está certo! A etapa anterior mostrou ambos os commits ao pesquisar por "future". Isso ocorre porque o comportamento padrão de git log --grep é case-insensitive (sem distinção entre maiúsculas e minúsculas) em alguns sistemas ou configurações.
Para garantir uma pesquisa case-sensitive (com distinção entre maiúsculas e minúsculas), você pode usar a opção --i (ou --ignore-case). Vamos tentar pesquisar por "Future" de forma case-insensitive:
git log --grep "Future" --oneline --i
Este comando diz ao Git para ignorar a distinção entre maiúsculas e minúsculas durante a pesquisa. Agora, ambos os commits contendo "future" ou "Future" devem ser exibidos:
<commit-id> Add third message about future
<commit-id> Send a message to the future
Isso demonstra que, embora o comportamento padrão possa variar, o uso da opção --i torna explicitamente a pesquisa case-insensitive. Se você precisar de uma pesquisa estritamente case-sensitive, normalmente dependeria do comportamento padrão sem --i. No entanto, dada a possibilidade de variação, é uma boa prática estar ciente da opção --i para pesquisas case-insensitive.
Compreender a distinção entre maiúsculas e minúsculas nas pesquisas é importante para encontrar commits com precisão, especialmente em projetos onde as convenções de mensagens de commit podem variar.