6. Histórico

Navegando pelo histórico

Como mencionei antes, o comando git log é sua principal ferramenta para explorar o histórico de commits. Vamos executá-lo de novo para ver o que ele faz.

Tarefa
Concluída

Execute o comando git log para ver o histórico de commits.

Dica: alguns comandos do Git, como git log, podem colocar seu terminal no modo pager, feito para navegar por listas longas. Nesse modo, você pode rolar a saída usando as setas e do teclado. Para sair do modo pager, pressione q.

Ótimo! Você deve ter visto uma lista parecida com esta. Seus hashes de commit, datas, nome e e-mail serão diferentes:

Resultado:
commit 11a3f60fe6520fb6f83306d94765ac54f8964be0
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Linked styles to hello.html
 
commit 7d5aa020c9b3cf2cb5a21575a33396f36e783cd4
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added CSS styles
 
commit 346ca091076783c70623aba03fb7139d3d27134f
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Added H1, HTML, and BODY tags to hello.html
 
commit 571a4dd16430d5cc89cd2d509bdfbf097d3db63a
Author: Your Name <you@example.com>
Date:   2024-03-15
 
    Initial commit

O problema da saída padrão do git log é que ela é bem verbosa. Cada commit ocupa várias linhas, o que pode ficar cansativo quando o histórico é longo. Felizmente, o git log tem muitas opções para personalizar a saída.

Uma das opções mais úteis é a --oneline, que condensa cada commit em uma única linha. Vamos testar.

Executar no terminal:
git log --oneline
Tarefa
Concluída

Execute git log --oneline para ver um histórico de commits mais compacto.

Você deve ter visto uma saída bem mais concisa:

Resultado:
11a3f60 Linked styles to hello.html
7d5aa02 Added CSS styles
346ca09 Added H1, HTML, and BODY tags to hello.html
571a4dd Initial commit

Bem melhor, né? Com a --oneline, você pode percorrer o histórico rapidamente e encontrar o commit que procura.

Bom saber!

O comando git log tem muitas outras opções úteis. Aqui vão alguns exemplos. Se você testar o exemplo com --author, substitua Your Name pelo nome que você configurou no Git:

Executar no terminal:
git log --oneline --max-count=2
git log --oneline --since="5 minutes ago"
git log --oneline --until="5 minutes ago"
git log --oneline --author="Your Name"
git log --oneline --all
Tarefa
Concluída

Teste algumas dessas variações do git log e observe as diferenças na saída.

Como você pode ver, o git log é uma ferramenta poderosa para filtrar e formatar o histórico de commits. Você pode combinar várias opções para criar consultas ainda mais específicas.

Por exemplo, vamos testar um comando git log mais avançado:

Executar no terminal:
git log --format="%h %ad | %s%d [%an]" --date=short
Tarefa
Concluída

Execute o comando git log acima e tente decifrar a saída.

O resultado deve ficar assim. De novo, seus hashes, datas e nome de autor serão diferentes:

Resultado:

11a3f60 2024-03-15 | Linked styles to hello.html (HEAD -> main) [Your Name] 7d5aa02 2024-03-15 | Added CSS styles [Your Name] 346ca09 2024-03-15 | Added H1, HTML, and BODY tags to hello.html (tag: 1.0) [Your Name] 571a4dd 2024-03-15 | Initial commit [Your Name]

Veja o que cada parte desse comando faz:

  • --format="..." define o formato da saída.
  • %h é o hash abreviado do commit.
  • %ad é a data do commit.
  • | é só um separador visual.
  • %s é a mensagem do commit.
  • %d representa as decorações do commit (por exemplo, pontas de branches ou tags).
  • %an é o nome do autor.
  • --date=short mantém o formato de data curto.
Ótimo!

Se você perceber que usa esse formato com frequência, pode defini-lo como padrão. Vamos fazer isso para este repositório. Aliás, se quiser manter esse formato em todos os seus repositórios, adicione a opção --global aos comandos abaixo.

Executar no terminal:
git config format.pretty "%h %ad | %s%d [%an]"
git config log.date short
Tarefa
Concluída

Defina o formato de log personalizado como padrão usando os comandos acima.

Nota: isso afeta apenas o repositório atual. Se quiser definir o formato globalmente, adicione a opção --global depois de cada git config.

Ótimo! Agora você aprendeu a navegar pelo histórico de commits com eficiência usando o git log. Isso vai ser útil conforme seu projeto cresce e você precisa encontrar commits específicos.

Vamos partir para a comparação de commits.

Next step
Quer testar o modo história?

Faça o curso do jeito que ele foi pensado: progressão em pequenas doses, ordem linear e focada, desbloqueio gradual das entradas da Gitopedia. Continue com o Git de verdade no VS Code/Cursor/Antigravity/Windsurf a qualquer momento.

Modo história
GRATUITO
mas precisa de login