git log: Visualizando o Histórico de Commits
- #Git
No desenvolvimento de software, manter e entender o histórico de alterações é fundamental para rastrear o progresso do projeto, revisar o trabalho realizado e identificar quando e por que certas alterações foram feitas. O comando git log é uma ferramenta poderosa no Git que permite que os desenvolvedores visualizem o histórico de commits de um repositório.
Nesse artigo, vamos explorar o que é esse comando, quais seus casos de uso com exemplos práticos e quais suas principais vantagens.
O que é o "git log"?
O git log é um comando utilizando para exibir o histórico de commits em um repositório Git. Ele exibe os exibe em formato de lista, incluindo o nome do autor do commit, a data e hora em que foi feito e a mensagem associada.
Ele permite uma análise detalhada do desenvolvimento do projeto ao longo do tempo.
Uso e Sintaxe
A sintaxe básica do comando é a seguinte:
git log
Quando executado sem argumentos, serão listados todos os commits realizados no repositório em ordem cronológica inversa. Ou seja, o commit mais recente aparecerá primeiro.
Alguns parâmetros de destaque que complementam a funcionalidade desse comando são:
- Indicar as diferenças introduzidas a cada commit:
git log -p
- Limitar a quantidade de registros retornados (nesse caso apenas os 2 últimos):
git log -2
- Exibir as algumas estatísticas abreviadas (como quantidade de alterações, inserções e exclusões):
git log --stat
- É possível utilizar a opção --graph para visualizar um pequeno gráfico ASCII que evidencia o fluxo de trabalho entre as branchs:
- Outra opção útil é o --pretty, que modifica os registros em um formato diferente do padrão
git log --pretty=oneline
Segue links da documentação oficial do git, contendo uma tabela com as opções disponíveis e outra com as formas de limitação temporal do retorno.
Variações do comando --pretty
Algumas predefinições estão disponíveis quando se usa esse comando:
- oneline: Mostra cada commit em uma única linha;
$ git log --pretty=oneline -1
90c9d6391c57664b98f40b6267ddfd81fd39f1ff (HEAD -> feature/ApiInvestimento, origin/feature/ApiInvestimento) feat: Criação controller Tipo de Investimento
- short: Exibe o código do commit, as branchs afetadas, o autor e a mensagem;
- full: Incluí ainda o autor da modificação e o responsável pelo Commit;
- fuller: Oferece ainda as informações de data de criação do commit;
$ git log --pretty=fuller -1
commit 90c9d6391c57664b98f40b6267ddfd81fd39f1ff (HEAD -> feature/ApiInvestimento, origin/feature/ApiInvestimento)
Author: ViniciusBenevidesDaSilva <vinishrafiel@gmail.com>
AuthorDate: Sun Feb 4 10:21:44 2024 -0300
Commit: ViniciusBenevidesDaSilva <vinishrafiel@gmail.com>
CommitDate: Sun Feb 4 10:21:44 2024 -0300
feat: Criação controller Tipo de Investimento
- format: Permite especificar o formato personalizado do retorno esperado. Para isso são usados caracteres curinga que permitem essa otimização:
$ git log --pretty=format:"%h - %an, %ar : %s" -1
90c9d63 - ViniciusBenevidesDaSilva, 5 weeks ago : feat: Criação controller Tipo de Investimento
Uma diferença que merece destaque é entre Author e Commiter. O autor é o desenvolvedor que originalmente realizou a alteração, enquanto o commiter é a pessoa que efetivamente submeteu o trabalho.
Segue link da documentação oficial, contendo uma tabela com os caracteres curinga que podem ser utilizados.
Exemplo de uso:
Imagine o seguinte repositório:
Para visualizar o seu histórico de commits, podemos clicar com o botão direito do mouse e selecionar a opção "Git Bash Here". Ela irá abrir o terminal do Git Bash, no qual podemos executar comandos git.
Em seguida, digitamos o comando git log no terminal:
Apertando a tecla enter, ele será executado e evidenciará todos os commits realizados:
Interpretando a listagem de commits
Conforme explicado, o retorno obtido terá essa estrutura:
$ git log
commit 133a5fc45e749aada2b621d71b2a1bbea0c52bfe
Author: ViniciusBenevidesDaSilva <vinishrafiel@gmail.com>
Date: Tue Jan 30 17:27:11 2024 -0300
feat: Criação controller usuário
commit e74100d38684cab84221faeb70656875e2b5fcf0 (origin/feature/docs, feature/docs)
Author: ViniciusBenevidesDaSilva <vinishrafiel@gmail.com>
Date: Mon Jan 29 16:59:56 2024 -0300
docs: Inclusão documentação inicial
commit d4942decedc7faa24949d38d62de1f67af25cddc (origin/main, main)
Author: ViniciusBenevidesDaSilva <vinishrafiel@gmail.com>
Date: Tue Jan 23 16:21:33 2024 -0300
init: Criação Repositório
Como pode ser observado, cada commit será listado com seu respectivo checksum SHA-1, as branchs envolvidas, o nome e e-mail do autor, data de inserção, e a mensagem do commit.
O Checksum SHA-1 presente nessa listagem é uma sequência alfanumérica que representa de forma exclusiva cada commit realizado. É uma informação criptografa calculada a partir do conteúdo da alteração, que visa garantir a integridade do histórico do repositório.
Vantagens do git log:
- Rastreamento de Alterações: O git log permite que você rastreie as alterações feitas em um projeto, fornecendo uma visão abrangente do desenvolvimento ao longo do tempo.
- Auditoria de Código: Com o git log, você pode revisar quem fez quais alterações e quando foram feitas, facilitando a auditoria do código e a identificação de responsabilidades.
- Identificação de Problemas: Ao visualizar o histórico de commits com o git log, você pode identificar rapidamente quando e onde ocorreram problemas no código, facilitando a resolução de bugs.
- Compreensão do Fluxo de Trabalho: O git log ajuda a entender o fluxo de trabalho do projeto, mostrando como as alterações foram integradas e as relações entre diferentes partes do código.
Conclusão
Conclui-se assim que o comando git log é uma ferramenta valiosa para entender o histórico de um repositório Git. Por fornecer uma visão detalhada dos commits, ele ajuda os desenvolvedores a rastrear o progresso do projeto, revisar o trabalho realizado e identificar problemas potencias no código.
Para seu uso de qualidade, ressalta-se a importância de se realizar commits com nomes significativos, com uma padronização que auxilie os desenvolvedores a entenderem as alterações nele realizadas, garantindo um bom gerenciamento e uma colaboração bem-sucedida no desenvolvimento de software.
Ficou com alguma dúvida? Pode enviá-la nos comentários que buscamos juntos pela resposta!!
Referências Bibliográficas
Documentação comando Git Log (português)