A vantagem de um sistema de controle de versão é que ele registra as alterações. Esses registros nos permitem recuperar dados como commits, descoberta de bugs, atualizações. Mas toda esta história será inútil se não conseguirmos navegá-la. Neste ponto, precisamos do comando git log.
Git log é uma ferramenta utilitária para revisar e ler um histórico de tudo o que acontece em um repositório. Várias opções podem ser usadas com um log git para tornar o histórico mais específico.
Geralmente, o log do git é um registro de commits. Um log git contém os seguintes dados:
Como sair do comando git log?
Pode ocorrer uma situação: você executa o comando git log e fica preso aí. Você quer digitar ou voltar ao bash, mas não pode. Quando você clica no Digitar chave, ele irá navegar para o comando mais antigo até o sinalizador final.
A solução para este problema é imprensa o q (Q para sair) . Isso o tirará da situação e o levará de volta à linha de comando. Agora você pode executar qualquer um dos comandos.
Registro básico do Git
O comando Git log é um dos comandos mais comuns do git. É o comando mais útil para Git. Cada vez que você precisar verificar o histórico, deverá usar o comando git log. O comando básico git log exibirá os commits mais recentes e o status do head. Ele será usado como:
$ git log
O comando acima exibirá os últimos commits. Considere a saída abaixo:
O comando acima lista todos os commits recentes. Cada commit contém algum sha-id exclusivo, que é gerado pelo algoritmo SHA. Também inclui a data, hora, autor e alguns detalhes adicionais.
Podemos realizar algumas ações como rolar, pular, mover e sair na linha de comando. Para rolar na linha de comando, pressione k para mover para cima, j para mover para baixo, a barra de espaço para rolar uma página inteira para baixo para rolar uma página para cima e q para sair da linha de comando.
<Git Log on-line
A opção oneline é usada para exibir a saída como um commit por linha. Ele também mostra a saída resumidamente, como os primeiros sete caracteres do SHA do commit e a mensagem do commit.
Será usado da seguinte forma:
$ git log --oneline
Então, normalmente podemos dizer que o sinalizador --oneline faz com que git log seja exibido:
- um commit por linha
- os primeiros sete caracteres do SHA
- a mensagem de commit
Considere a saída abaixo:
Como podemos ver mais precisamente na saída acima, cada commit é fornecido apenas em uma linha com um número sha de sete dígitos e uma mensagem de commit.
Estatística de registro do Git
O comando log exibe os arquivos que foram modificados. Também mostra o número de linhas e uma linha de resumo do total de registros que foram atualizados.
Geralmente, podemos dizer que a opção stat é usada para exibir
preenchimento np
- os arquivos modificados,
- O número de linhas que foram adicionadas ou removidas
- Uma linha de resumo do número total de registros alterados
- As linhas que foram adicionadas ou removidas.
Será usado da seguinte forma:
$ git log --stat
O comando acima exibirá os arquivos que foram modificados. Considere a saída abaixo:
A partir da saída acima, podemos ver que todos os commits listados são modificações no repositório.
Git log P ou Patch
O comando git log patch exibe os arquivos que foram modificados. Também mostra a localização das linhas adicionadas, removidas e atualizadas.
Será usado como:
$ git log --patch
Ou
$ git log -p
Geralmente, podemos dizer que o sinalizador --patch é usado para exibir:
- Arquivos modificados
- A localização das linhas que você adicionou ou removeu
- Mudanças específicas que foram feitas.
Considere a saída abaixo:
A saída acima exibe os arquivos modificados com a localização das linhas que foram adicionadas ou removidas.
b mais árvore
Gráfico de registro do Git
O comando Git log permite visualizar seu log git como um gráfico. Para listar os commits na forma de um gráfico, execute o comando git log com a opção --graph. Ele funcionará da seguinte forma:
$ git log --graph
Para tornar a saída mais específica, você pode combinar este comando com a opção --oneline. Funcionará da seguinte forma:
$ git log --graph --oneline
Filtrando o histórico de commits
Podemos filtrar a saída de acordo com nossas necessidades. É um recurso exclusivo do Git. Podemos aplicar muitos filtros como valor, data, autor e muito mais na saída. Cada filtro tem suas especificações. Eles podem ser usados para implementar algumas operações de navegação na saída.
Vamos entender cada um desses filtros detalhadamente.
Por valor:
Podemos limitar o número de commits de saída usando o comando git log. É o comando mais específico. Este comando removerá a complexidade se você estiver interessado em menos commits.
Para limitar a saída do git log, incluindo a opção -. Se quisermos apenas os três últimos commits, podemos passar o argumento -3 no comando git log. Considere a saída abaixo:
Como podemos ver na saída acima, podemos limitar a saída do git log.
Por data e hora:
Podemos filtrar a saída por data e hora. Temos que passar --depois ou -antes argumento para especificar a data. Ambos os argumentos aceitam uma variedade de formatos de data. Ele funcionará da seguinte forma:
$ git log --after='yy-mm-dd'
O comando acima exibirá todos os commits feitos após a data especificada. Considere a saída abaixo:
O comando acima está listando todos os commits após '2019-11-01'.
Também podemos passar a declaração de referência aplicável como 'ontem', '1 semana atrás', '21 dias atrás' e muito mais. Ele será executado como:
leis de equivalência
git log --after='21 days ago'
O comando acima exibirá os commits feitos há 21 dias. Considere a saída abaixo:
Também podemos rastrear os commits entre duas datas. Para rastrear os commits que foram criados entre duas datas, passe uma referência de instrução --antes e --depois a data. Suponha que queiramos rastrear os commits entre '2019-11-01' e '2019-11-08'. Executaremos o comando da seguinte forma:
$ git log --after='2019-11-01' --before='2019-11-08 '
O comando acima exibirá os commits feitos entre as datas. Considere a saída abaixo:
A saída acima exibe os commits entre o período determinado. Podemos usar --since e --until em vez de --after e --before. Porque são sinônimos, respectivamente.
Por autor:
Podemos filtrar os commits por um usuário específico. Suponha que queremos listar os commits feitos apenas por um determinado membro da equipe. Podemos usar o sinalizador -author para filtrar os commits por nome do autor. Este comando pega uma expressão regular e retorna a lista de commits feitos por autores que correspondem a esse padrão. Você pode usar o nome exato em vez do padrão. Este comando será executado da seguinte maneira:
$ git log --author='Author name'
O comando acima exibirá todos os commits feitos por determinado autor. Considere a saída abaixo:
A partir da saída acima, podemos ver que todos os commits do autor Eu sou Dwivedi1 estão listadas.
Podemos usar uma string em vez de uma expressão regular ou nome exato. Considere a afirmação abaixo:
$ git log --author='Stephen'
A instrução acima exibirá todos os commits cujo autor inclui o nome Stephen. O nome do autor não precisa ser uma correspondência exata; ele apenas tem a frase especificada.
Como sabemos, o email do autor também está envolvido com o nome do autor, para que possamos utilizar o email do autor como padrão ou pesquisa exata. Suponha que queremos rastrear os commits dos autores cujo serviço de e-mail é o Google. Para fazer isso, podemos usar curingas como ‘@gmail.com’. Considere a afirmação abaixo:
$ git log -author='@gmail.com'
O comando acima exibirá os commits dos autores conforme fornecido no padrão. Considere a saída abaixo:
Por mensagem de commit:
Para filtrar os commits pela mensagem de commit. Podemos usar a opção grep, e ela funcionará como opção do autor.
Ele funcionará da seguinte forma:
$ git log --grep=' Commit message.'
Podemos usar a forma abreviada de mensagem de commit em vez de uma mensagem completa. Considere a saída abaixo.
A saída acima exibe todos os commits que contêm a palavra commit em sua mensagem de commit.
Existem muitas outras opções de filtragem disponíveis, como filtrar por nome de arquivo, conteúdo e muito mais.