Git log: guia completo para iniciantes

COMPARTILHAR:

O comando git log exibe o log de confirmação em um repositório Git. Por padrão, o comando git log exibe hashes de confirmação, mensagens de confirmação e outros metadados de confirmação. Você pode filtrar a saída do git log com várias opções.

Os sistemas de controle de versão têm um objetivo principal: registrar como sua base de código evolui ao longo do tempo. Isso permite que você veja como o projeto está progredindo. Você pode descobrir quem contribuiu para seu projeto e determinar quais alterações foram feitas em seu código e quando.

Mas como você realmente vê o histórico da criação do seu repositório Git? É aqui que o comando git log pode ser útil.

Este artigo discutirá os conceitos básicos do comando git log e como usá-lo para verificar os repositórios Git com exemplos.

Comando git log

O comando git log exibe uma lista de todos os commits feitos em um repositório. Você pode visualizar o hash de cada confirmação do Git, a mensagem associada a cada confirmação e mais metadados. Este comando é útil para exibir o histórico do repositório.

Enquanto o comando git status se concentra no diretório de trabalho atual, o git log permite visualizar o histórico de um repositório.

Exemplo de comando git log

Vejamos um exemplo para ilustrar como o comando git log funciona. Estamos desenvolvendo um repositório chamado “demo-repository”. Agora queremos ver uma lista de todos os commits que enviamos para o repositório. Para isso podemos usar o seguinte comando:

git log

O comando git log retorna uma lista de todos os commits feitos em um repositório. Aqui está um exemplo de um único commit retornado por este comando:

commit 8ce5e12f6c475cc0d5768584041420f6220d992c (HEAD -> main, origin/main, origin/HEAD)
Author: Brayan Monteiro <[email protected]>
Date:   Thu Jul 21 14:55:06 2022 -0300

    Update index.html

Vamos discutir esta saída passo a passo. Cada entrada retornada pelo comando git log contém:

  • O hash Secure Hash Algorithm (SHA) do commit que identifica exclusivamente cada commit no repositório. Em nosso exemplo acima, isso é “8ce5e12f6c475cc0d5768584041420f6220d992c”.
  • Autor enviado. Em nosso exemplo acima, este é Brayan Monteiro. O e-mail do autor também é especificado.
  • Envie a data em que o envio foi feito. No exemplo acima, esta é quinta-feira, 21 de Julho.
  • A mensagem associada ao commit. A mensagem de confirmação retornada acima é “Update index.html”.
  • Todos esses dados nos fornecem informações úteis sobre commits em nosso repositório.

Filtrar a saída do log do git

Por padrão, o git log retorna uma lista de todos os commits feitos no repositório usando essa estrutura. Como você pode imaginar, ler as instruções do git log pode se tornar rapidamente difícil se houver muitos commits para ler.

git log vem com alguns sinalizadores que podem ser usados ​​para filtrar logs. estes são:

CURSO GRATUITO DE DESENVOLVIMENTO WEB

Filtrar por mais recente

Se você deseja retornar um número específico de commits, você pode usar o sinalizador -n. Aqui está um exemplo:

git log -n 3

Este comando retorna uma lista dos três commits mais recentes feitos no repositório.

Filtrar por autor ou commiter

Você também pode filtrar os commits retornados pelo git log por quem escreveu ou submeteu as alterações. Suponha que queremos ver uma lista de commits feitos por “Brayan Monteiro”. Podemos fazer isso com estes comandos:

git log --author="Brayan Monteiro"
git log --committer="Brayan Monteiro"

O sinalizador de autor restringe os resultados a confirmações com alterações feitas por Brayan Monteiro. O sinalizador de committer restringe os resultados aos commits que foram realmente feitos por aquele indivíduo.

Você descobrirá que na maioria dos casos o autor e o committer são a mesma pessoa. Em projetos maiores, o autor do commit não é necessariamente aquele que fez o commit no repositório. É por isso que essas duas bandeiras existem.

Filtrar por data

Além disso, você pode filtrar os resultados do git log por data. Para isso, você pode usar os sinalizadores -before e -after. Esses sinalizadores aceitam vários formatos de data, mas os dois mais usados ​​são referências relativas e datas completas.

Suponha que queremos recuperar uma lista de commits após 2019-3-2. Podemos fazer isso com este comando:

git log --after="2019-3-2"

Especificamos uma data para filtrar nossos commits. Da mesma forma, se quiséssemos recuperar uma lista de commits antes de ontem, poderíamos usar o seguinte comando:

git log --before="yesterday"

Especificamos um valor relativo (“yesterday”).

Agora suponha que queremos recuperar uma lista de commits publicados após 2019-3-2 e antes de 2019-3-19. Podemos fazer isso com este comando:

git log --after="2019-3-2" --before="2019-3-19"

Filtrar por arquivo

Ao usar o comando git log, você pode querer ver apenas uma lista de commits que afetam um arquivo específico. Para fazer isso, você pode especificar o arquivo cujas alterações deseja ver.

Suponha que queremos ver as alterações feitas no arquivo “main.py” em nosso código. Podemos fazer isso com o seguinte comando:

git log -- main.py

instrução — informa ao comando git log que o argumento que especificamos é um caminho de arquivo e não um nome de ramificação.

Em nosso comando, especificamos apenas um arquivo para filtrar a resposta do comando git log. Mas você pode especificar vários arquivos, se quiser.

Filtrar por conteúdo

Você também pode encontrar commits que removem ou adicionam linhas de código específicas.

Suponha que queremos pesquisar todos os commits que tenham o termo “# Introduction” adicionado ao nosso código. Podemos fazer isso com este comando:

CURSO GRATUITO DE PYTHON
git log -S "# Introdução"

O sinalizador -S é usado para especificar quais alterações de commit queremos procurar na lista de commits. Observe que não há espaços ou sinais de igual entre os sinalizadores -S. Além disso, as aspas que usamos para especificar os commits que estamos procurando.

Filtrar por intervalo

Você pode passar uma sequência de commits para o git log usando os parâmetros since e until. A sintaxe para esses parâmetros é a seguinte:

git log <since>..<until>

Suponha que queremos recuperar uma lista de commits feitos do commit b72beb5 antes de ser enviado para o commit b53b22d . Podemos fazer isso com este comando:

git log b72beb5..b53b22d

Este comando retorna uma lista de todos os commits entre os commits b72beb5 e b53b22d.

Filtrar por mensagem

O sinalizador --grep permite filtrar os commits retornados pelo git log pela mensagem de commit associada a um commit específico.

Por exemplo, digamos que queremos retornar uma lista de todos os commits cujos nomes começam com “upload:”. Podemos fazer isso com o seguinte código:

git <strong>log</strong> --<strong>grep</strong>="upload:"

Este comando retorna uma lista de todos os commits cujas mensagens começam com “upload:”.

Formatar a saída do log do git

Na seção anterior, concluímos a saída completa do comando git log. Essa saída contém o SHA do nosso commit, o autor do commit, a data em que o commit foi enviado e a mensagem do commit.

Nota: O “commit hash” às vezes é chamado de Git commit “reference” ou “SHA”.

Embora todas essas informações sejam úteis, às vezes você só precisa recuperar dados específicos sobre um commit. Felizmente, o comando git log vem com alguns sinalizadores que você pode usar para formatar a saída do comando.

Retornar registro curto

Por padrão, a instrução git log retorna uma entrada de log completa para cada confirmação feita no repositório. Você pode usar o sinalizador --oneline para recuperar uma lista de IDs de confirmação e suas mensagens de confirmação associadas.

Esta é a sintaxe para o sinalizador --oneline:

git log --oneline

Quando executado em nosso repositório anterior, este comando retornou:

8ce5e12 (HEAD -> main, origin/main, origin/HEAD) Update index.html
948fdf7 Update index.html
decf25e Update styles.css
53df9bd Update index.html
9d83d6c commit adição de legendas nas img do portfólio
2f22e4b commit novo projeto prático
913b57c exclusão de imagens não usadas
f9491b5 alteração link do rolar para baixo
070e1cf alteração link logo home
a7735a8 portfolio implementação
999fad3 mudando e inserindo dados no index
c039b49 template html e css inseridos
54b9152 setup head
e66db9c Update index.html
af57a57 Update README.md
9223fac Create index.html
ef13a4f Update README.md
3f140ae Initial commit

Podemos ver o ID do commit e a primeira linha da mensagem associada ao commit. Isso é mais fácil de ler do que todos os metadados sobre os commits retornados pelo comando git log.

Cada entrada aparece em uma linha. Essa técnica de git log de uma linha é útil porque mostra commits sem mostrar muitas informações.

Decorando saída

O sinalizador --decorate permite que você veja todas as referências (ou seja, ramificações e tags) apontando para um determinado commit. Aqui está a sintaxe para este sinalizador:

hostinger banner
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">git log --decorar</font></font>

Este comando retorna:

43433 c6 (HEAD - > master, origin / master, origin / HEAD) Atualizar index.html 
a7d8dc2 docs: Atualizar README.md 
b53b22d feat: Atualizar site 
3 b16026 (tag: v1) feat: Lançar nova homepage 
b72beb5 first commit

O quarto commit em nossa lista agora tem seu nome de tag especificado. Isso ocorre porque o sinalizador –decorate mostra as referências associadas a cada commit em nosso histórico de commits.

Comando git shortlog

O comando git shortlog fornece um resumo do git log. A saída do comando git shortlog é agrupada por autor, o que significa que você pode ver facilmente quem fez quais alterações no repositório.

Vamos executar o comando git shortlog no repositório anterior:

git shortlog

Nosso comando retorna:

Brayan Monteiro (18):
      Initial commit
      Update README.md
      Create index.html
      Update README.md
      Update index.html
      setup head
      template html e css inseridos
      mudando e inserindo dados no index
      portfolio implementação
      alteração link logo home
      alteração link do rolar para baixo
      exclusão de imagens não usadas
      commit novo projeto prático
      commit adição de legendas nas img do portfólio
      Update index.html
      Update styles.css
      Update index.html
      Update index.html

Brayan é o único que contribui para este repositório, fazendo cinco commits. No entanto, se houver outros contribuidores, suas contribuições serão listadas aqui, juntamente com o número total de commits que eles enviaram para o repositório.

Conclusão

O comando git log mostra quais alterações foram feitas no repositório, por quem e quando. Você pode filtrar a saída do git log para mostrar apenas as informações que você precisa saber.

O comando git log vem com dois tipos de sinalizadores. Alguns sinalizadores ajudam você a formatar a saída do log. Outros sinalizadores que podem ajudá-lo a filtrar os commits retornados pelo comando.

Este exemplo de referência de tutorial discute como usar o git log e os sinalizadores mais comuns usados ​​com o comando. Ao usar o Git, o comando git log é uma ferramenta importante em seu arsenal. Depois de saber como usar esse comando de forma eficaz, você será um mestre em verificar os repositórios Git!

Leia também: Font Awesome: guia completo da biblioteca

COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.