Git log: visualizando o histórico de commits
1. Introdução ao git log
O histórico de commits é o coração do Git. Cada commit registra um ponto na evolução do seu projeto, contendo informações como autor, data, hash único e mensagem descritiva. Visualizar esse histórico é essencial para entender o que foi feito, quem fez e quando.
O comando básico git log exibe todos os commits do branch atual em ordem cronológica reversa (do mais recente para o mais antigo). A saída padrão mostra:
commit 7a3b5c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b
Author: João Silva <joao@exemplo.com>
Date: Mon Jan 15 14:30:00 2024 -0300
Corrige bug no cálculo de impostos
commit 9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c
Author: Maria Souza <maria@exemplo.com>
Date: Sun Jan 14 10:15:00 2024 -0300
Adiciona validação de formulário
Para navegar no terminal, use as setas para cima/baixo e pressione q para sair da visualização.
2. Formatando a saída do log
O Git oferece diversas opções para personalizar a exibição do histórico:
--oneline: versão compacta com hash curto e mensagem do commit.
7a3b5c8 Corrige bug no cálculo de impostos
9b8c7d6 Adiciona validação de formulário
1a2b3c4 Refatora módulo de autenticação
--graph: visualização gráfica de branches e merges, útil para projetos com múltiplas linhas de desenvolvimento.
* 7a3b5c8 (HEAD -> main) Corrige bug no cálculo de impostos
|\
| * 4d5e6f7 (fix/calculos) Ajusta alíquotas
* | 9b8c7d6 Adiciona validação de formulário
|/
* 1a2b3c4 Refatora módulo de autenticação
--pretty=format:"...": personalização completa usando placeholders como %h (hash curto), %an (autor), %ar (data relativa) e %s (mensagem).
git log --pretty=format:"%h - %an, %ar : %s"
7a3b5c8 - João Silva, 2 dias atrás : Corrige bug no cálculo de impostos
9b8c7d6 - Maria Souza, 3 dias atrás : Adiciona validação de formulário
3. Filtrando por autor e data
Para encontrar commits específicos, filtre por autor ou período:
Por autor:
git log --author="Maria"
Por intervalo de datas:
git log --after="2024-01-01" --before="2024-01-31"
Combinações:
git log --author="João" --since="2 weeks ago"
4. Filtrando por arquivos e mensagens
Por arquivo específico:
git log -- src/app.js
Por texto na mensagem do commit:
git log --grep="bug"
Por alteração no código (busca por string adicionada ou removida):
git log -S"calcularTotal"
5. Limitando o número de commits
Últimos N commits:
git log -n 5
A partir de uma data:
git log --since="2024-01-01"
Paginação com skip:
git log --skip=10 --max-count=5
6. Visualizando diferenças e detalhes
-p (patch): mostra o diff completo de cada commit.
git log -p -n 2
--stat: resumo de arquivos alterados e linhas modificadas.
git log --stat
Saída exemplo:
commit 7a3b5c8
Author: João Silva <joao@exemplo.com>
Date: Mon Jan 15 14:30:00 2024 -0300
Corrige bug no cálculo de impostos
src/calculos.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--name-only: lista apenas os nomes dos arquivos alterados.
git log --name-only
7. Navegando entre branches e tags
Commits em um branch que não estão em outro:
git log main..develop
Histórico de todos os branches:
git log --all
Commits entre duas tags (útil para releases):
git log v1.0..v2.0
8. Dicas avançadas e combinações
Visão completa do repositório:
git log --oneline --graph --all --decorate
Criando alias personalizado:
git config --global alias.lg "log --oneline --graph --all --decorate"
Agora use git lg para obter a mesma visualização.
Usando git shortlog: resumo agrupado por autor.
git shortlog -sn
Saída exemplo:
120 João Silva
85 Maria Souza
42 Pedro Santos
Combinação avançada para encontrar commits de um autor específico em um intervalo de datas, mostrando apenas nomes de arquivos:
git log --author="Maria" --since="2024-01-01" --until="2024-03-31" --name-only --oneline
Dominar o git log transforma a maneira como você navega pelo histórico do projeto. Comece com as opções básicas e gradualmente incorpore filtros e formatações personalizadas ao seu fluxo de trabalho. A prática constante tornará essas ferramentas intuitivas e indispensáveis no seu dia a dia com Git.
Referências
- Documentação oficial do Git - git-log — Documentação completa com todas as opções do comando git log
- Atlassian Git Tutorial - Git Log — Guia prático com exemplos detalhados de formatação e filtros
- Git Book - Visualizando o histórico — Capítulo do livro oficial Git sobre visualização de histórico
- Git Tower - Understanding Git Log — Tutorial interativo com exemplos visuais do git log
- Dev.to - Git Log: The Ultimate Guide — Artigo abrangente com truques avançados e combinações úteis