9. Histórico

Metas

  • Aprender a visualizar o histórico do projeto.

Conseguir uma lista das modificações feitas é uma função do comando git log.

Execute

git log

Você verá:

Resultado

$ git log
commit b7614c1aea1ffbc46400fe1a163842d6ec620a43
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added HTML header

commit 46afaff2232fc3d564c40f65cb82e7e94839a1bb
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added standard HTML page tags

commit 78433de967102f2b59d0a8a60eb397b2663ed282
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Added h1 tag

commit 58369706affbc1c27fa03a65fc7a05847278045f
Author: Alexander Shvets <alex@githowto.com>
Date:   Tue Nov 28 05:51:38 2023 -0600

    Initial commit

Aqui está uma lista de todos os quatro commits do repositório, que nós fizemos até agora.

01 Histórico em uma linha

Você controla completamente o que o log mostra. Eu gosto do formato de linha única:

Execute

git log --oneline

Você verá:

Resultado

$ git log --oneline
b7614c1 Added HTML header
46afaff Added standard HTML page tags
78433de Added h1 tag
5836970 Initial commit

02 Controlando a exibição de entradas

Aqui estão algumas outras opções interessantes para visualizar o histórico:

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

Há um grande número de opções para visualizar o histórico; você pode examinar a página de manual git-log para ver todas elas.

03 Ficando chique

Isso é como eu faço para rever as modificações feitas na última semana. Eu adiciono --author=Alexander se eu quero ver apenas as modificações que eu fiz.

git log --all --pretty=format:"%h %cd %s (%an)" --since="7 days ago"

04 O melhor formato do log

Com o tempo, eu descobri que o seguinte formato é o mais adequado.

Execute

git log --pretty=format:"%h %ad | %s%d [%an]" --date=short

Ele fica assim:

Resultado

$ git log --pretty=format:"%h %ad | %s%d [%an]" --date=short
b7614c1 2023-11-28 | Added HTML header (HEAD -> main) [Alexander Shvets]
46afaff 2023-11-28 | Added standard HTML page tags [Alexander Shvets]
78433de 2023-11-28 | Added h1 tag [Alexander Shvets]
5836970 2023-11-28 | Initial commit [Alexander Shvets]

Vamos olhar os detalhes:

  • --pretty="..." define o formato da saída.
  • %h é o hash abreviado do commit.
  • %ad é a data do commit.
  • | é apenas um separador visual.
  • %s é o comentário.
  • %d mostra decorações do commit (ex.: head de branches ou tags).
  • %an é o nome do autor =.
  • --date=short mantém o formato de data pequeno e simples.

Então, toda vez que você quiser ver um log, você terá que digitar muito. Felizmente, há várias opções de configuração do Git para ajustar o formato padrão de saída do registro:

Execute

git config --global format.pretty '%h %ad | %s%d [%an]'
git config --global log.date short

05 Outras ferramentas

Ambos gitx (para Mac) e gitk (para qualquer plataforma) ajudam a explorar o histórico.