Como inspecionar o histórico de um projeto com o registro Git

Como inspecionar o histórico de um projeto com o registro Git

Um dos serviços mais fundamentais fornecidos pelo Git é o histórico do projeto. Como o Git acompanha todas as alterações feitas em um repositório, ele pode oferecer recursos de registro muito poderosos. Você pode consultar o histórico de um projeto de muitas maneiras diferentes e pode extrair e exibir vários dados usando um comando flexível.





o git log comando é enorme, o maior de qualquer comando Git regular. Seu manual tem mais de 2.500 linhas. Felizmente, git log fornece muito de seu comportamento mais útil a partir de apenas algumas opções principais.





Log básico com o comportamento padrão

Por padrão, git log mostra uma lista cronológica reversa de commits. Cada confirmação inclui seu hash, autor, data e mensagem de confirmação:



O comando usa um pager (por exemplo, menos, mais) para mostrar a saída completa para que você possa navegar facilmente pelos resultados. Você pode configurar o Git para usar um programa de sua escolha, como o mais pager.

Aqui está uma saída de log do git de o repositório do código-fonte git em si:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

O resultado começa com o hash de confirmação ( 670 ...) seguido por uma lista de branches que atualmente apontam para aquele commit ( HEAD -> mestre , etc.)

seu pc teve um problema e precisa reiniciar

A próxima linha descreve o autor deste commit, dando seu nome e endereço de e-mail.





A data e hora completas do commit seguem na próxima linha.

Finalmente, o conteúdo completo da mensagem de confirmação aparece. Você pode controlar quase tudo o mais que o git log oferece com opções de linha de comando. Existem dois tipos principais de opções:





  • Formatação, que define como o Git exibe cada commit.
  • Filtragem, que define quais confirmações git log inclui.

Além das opções de linha de comando, o git log aceita argumentos que especificam arquivos, commits, branches ou outros tipos de referência. Isso aplica mais filtragem.

Formatando saída de log Git

Um dos ajustes mais simples é o --uma linha opção que produz uma saída muito breve:

git log --oneline

Cada linha no log agora contém apenas um hash de confirmação abreviado e o assunto da mensagem de confirmação. Esta é uma excelente maneira de obter uma visão geral dos compromissos recentes do projeto:

Infelizmente, sem outro contexto, essas informações nem sempre são tão úteis. Pode dar uma ideia vaga do projeto, mas faltam datas e outras informações úteis sobre autores e arquivos.

Visualizando um Gráfico de Ramificação

o --gráfico opção permite que você visualize relacionamentos entre ramos. É muito básico, mas pode ajudar a desvendar uma história complicada.

git log --oneline --graph

Relacionado: Como Criar um Novo Branch no Git

Resultado bonito personalizado

Você pode obter uma formatação mais complicada especificando-a em detalhes usando o --bonito opção. A sintaxe vai de muito simples a muito mais complexa, então consulte um manual para detalhes completos .

onde posso ir para imprimir um documento
git log --pretty=short

É essencialmente o mesmo que git log sem a data ou mensagem completa:

git log --pretty=oneline

É equivalente a git log --oneline .

git log --pretty=fuller

Inclui muitos detalhes. Até separa o autor e o autor do commit que podem, em teoria, ser pessoas diferentes:

Com o formato: variante, você pode fornecer uma string contendo qualquer conteúdo que desejar, incluindo marcadores de posição que são substituídos por vários dados. Aqui estão alguns exemplos de marcadores de posição:

  • % H cometer hash
  • % h hash de commit abreviado
  • %para data do autor
  • %Com data do autor, parente
  • % s enviar assunto da mensagem
  • % b enviar corpo da mensagem
  • % p hashes parentes abreviados

Você pode adicionar caracteres fixos à saída e colorir. Este exemplo também mostra uma variação no formato da data:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Observe que os colchetes circundam a data. Qualquer que seja a formatação escolhida, se quiser que a saída seja útil em um pipeline ou para outras formas de processamento de texto, você deve considerar como demarcar cada parte da saída.

Mostrando diferenças no registro

Um detalhe importante ao olhar para a história de um repositório são as próprias diferenças. Afinal, eles representam o que realmente mudou no código! Para começar, você pode obter um resumo das alterações ao lado de cada commit usando --shortstat :

git log --shortstat

Isso adiciona uma linha como:

1 file changed, 48 insertions(+), 2 deletions(-)

No final de cada commit. Você verá frequentemente esse tipo de resumo - em todas as páginas do GitHub, por exemplo - e é uma maneira útil de julgar rapidamente o escopo de um commit específico. Para obter informações mais detalhadas, você pode incluir a saída completa do patch (diffs) usando o -p bandeira:

git log -p

Filtrando a saída do log Git

Qualquer que seja a formatação aplicada, você ainda verá o log completo de todos os commits no branch atual. Mesmo que o Git os divida em páginas, ainda pode ser uma grande quantidade de saída. As opções a seguir permitem que você personalize quais commits o log inclui.

Restringindo por Quantidade

Se você quiser apenas cortar os resultados para mostrar os poucos commits mais recentes, use o -[número] sintaxe:

git log -2

Restringindo por Data

Para restringir o conjunto de confirmações a um determinado intervalo de datas, use o --Desde a ( --depois de ) e --até ( --antes ) opções. Cada um deles leva uma data no formato ISO 8601. Você pode usar qualquer um --Desde a ou --até sozinhos ou ambos juntos para especificar um intervalo. As opções --depois de e --antes são sinônimos.

git log --since='2021-01-01' --until='2021-05-01'

Restringindo por arquivo

O log do Git pode se concentrar em um arquivo específico, em vez de em cada arquivo em seu repositório. Isso é ótimo para ajudá-lo a descobrir como um arquivo específico mudou ao longo do tempo. Basta anexar o nome do arquivo ao final do seu comando git:

git log filename

Você verá apenas os commits que afetaram nome do arquivo .

Diferenças entre ramos

Você pode ter alguns requisitos exclusivos ao visualizar o log de uma filial. Por exemplo, em vez de ver todo o histórico, você pode apenas querer ver o que mudou naquele branch específico. O log do Git pode ajudar por meio do ref1..ref2 sintaxe. Existem três abordagens ligeiramente diferentes que você pode usar:

  1. Veja os commits que estão no main, mas não no branch: git log --oneline origin/branch..origin/main
  2. Veja os commits que estão no branch, mas não no main: git log --oneline origin/ main ..origin/ branch
  3. Veja os commits que existem apenas no branch ou main: git log --oneline origin/branch ... origin/main

Diferenças entre duas tags

Assim como você pode ver o histórico entre ramos usando o ref1..ref2 sintaxe, você também pode ver o histórico entre as tags da mesma maneira. Afinal, tanto tags quanto branches são tipos de referência.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Se você estiver preparando notas de lançamento para um projeto maior, git shortlog deve ser o seu primeiro porto de escala. Ele produz uma lista de autores com assuntos comprometidos ao lado deles. Você pode passar um intervalo de referência para limitar o histórico de maneira semelhante ao git log:

git shortlog v2.32.0-rc3..v2.32.0

o git show command é ainda mais versátil do que git log . Ele pode trabalhar com tags e outros tipos de objetos git além do histórico de commits. Ele compartilha muitas opções com git log , mas você só precisará realmente dele se precisar se aprofundar nos detalhes de nível inferior.

Revise o passado com o registro do Git

Git log é um comando complicado, mas você pode obter muito uso de suas opções mais básicas. Navegar no histórico de um repositório é uma excelente maneira de entender com que frequência as mudanças ocorrem e quantas pessoas as fazem. Depois de ter um bom entendimento da história de um projeto, você estará em uma ótima posição para contribuir com ele.

diferença entre simetria otterbox e comutador
Compartilhado Compartilhado Tweet O email Junte-se à tendência de codificação social e contribua com os repositórios GitHub

Quer exercitar seus músculos de codificação e ajudar em projetos de código aberto? Veja como contribuir com o GitHub.

Leia a seguir
Tópicos relacionados
  • Programação
  • GitHub
  • Dicas de codificação
Sobre o autor Bobby Jack(58 artigos publicados)

Bobby é um entusiasta da tecnologia que trabalhou como desenvolvedor de software por quase duas décadas. Ele é apaixonado por jogos, trabalha como Editor de Críticas na Switch Player Magazine e está imerso em todos os aspectos da publicação online e desenvolvimento web.

Mais de Bobby Jack

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever