Como usar o Git Log para formatar o histórico de commits?



Git é uma ferramenta que ajuda a organizar e gerenciar o código-fonte de seus aplicativos. Aprenda tudo sobre o comando git log format history e como usá-lo.

Neste artigo, discutiremos algumas opções avançadas para formatar e imprimir os logs de commit para buscar as informações de que você precisa no histórico do diário do projeto. Como já sabemos, mantém um diário das mudanças comprometidas com o histórico do projeto, vamos agora explorar mais maneiras de o comando 'git log' ser útil.

Em primeiro lugar, estou alternando / verificando o branch “feature1” para um histórico conveniente e mais curto.
Use os comandos -





$cd myProj–Mudar para o projeto git

$git checkout feature1- pule para o branch ‘feature1’



1. Confirmar formatação

1.1 Imprima o conteúdo de saída em um determinado formato

Sintaxe: git log --pretty [=]

Onde, pode ser um de uma linha, curto, médio, cheio, mais cheio, o email, crue formato:
Quando = parte é omitida, o padrão é médio.

1.1.1 –pretty = oneline

Impressão bonita do log de commit em uma 'linha única'
Comando: git log --pretty = oneline
Formata a saída em sequência:




Commit - Histórico de formato de registro Git - Edureka

1.1.2 - bonito = curto

Formato de saída de confirmação 'curto' no formato:
commit (refname)
Autor:



1.1.3 - bonito = médio

Comando: git log --pretty = medium
Imprimir a saída de commit no formato ‘meio’:
comprometer
Autor :
Encontro:


1.1.4 - bonito = cheio

Comando: git log --pretty = full
A saída está no formato:
commit (refname)
Autor:
Comprometa:


1.1.5 - bonito = mais cheio

Comando: git log --pretty = fuller
commit (refname)
Autor:
AuthorDate :
Comprometa:
CommitDate:


1.1.6 –pretty = email

Comando: git log --pretty = email
Imprimir saída de registro no formato de estilo de e-mail:
A partir de
A partir de:
Encontro:
Sujeito: [FRAGMENTO]


1.1.7 - bonito = cru

Comando: git log --pretty = raw
O formato de saída do log bruto mostra o commit inteiro exatamente como armazenado no objeto de commit.
comprometer
árvore
pai
autor
comprometer

1.1.8 –formato:: Formatação personalizada

O formato permite que você especifique quais informações do objeto de commit você deseja imprimir no log de saída de commit
Vamos considerar os vários marcadores de posição que essa opção fornece, exatamente como uma função ‘C printf’ com a ajuda de snippets de código:

Comando: git log --pretty = format: '% h% ad | % s% d [% an] '--data = curta
Formato de saída:
| [nome do autor]

% h = Ids hash-id / sha1commit abreviados
% H = ids sha-1 longos
%para = data de autoria
% s = confirmar linha do título do assunto
% d = nomes de ponteiro de referência (ramo, tag)
%a = nome do autor
-encontro = short: Imprime apenas a data e não a hora em um formato legível

Agora, que tal tornar essa saída mais amigável, usando cores.
Comando:
git log --pretty = format: '% C (amarelo)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--data = curta


Alguns outros marcadores de posição usados ​​no snippet de código acima são:
% C (amarelo) : Vire a seguinte string para amarelo
% Creset : Redefina a seguinte string de volta para a cor padrão (branco)
% Cgreen : alterar a sequência seguinte para verde
%Eu acho: Mude a seguinte string para vermelho
% Cblue: Deixe o nome do autor na cor azul

Você não precisa se lembrar e escrever o comando inteiro todas as vezes, apenas use um nome curto como git alias como mostrado abaixo:
Comando:
git config --global alias.c-hist 'log --pretty = format:'% C (amarelo)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--data = curto'

“C-hist” representa c padronizado- hist ory
Então, como você deve ter observado, estou definindo meu global configuração git arquivo com os valores.

analisar arquivo xml em java

Agora, para verificar o histórico do branch atual, tudo que você precisa fazer é executar o comando, assim:
Comando: vai c-hist

1.2 –abbrev-commit: abreviar git commit hash-id

Comando: git log --abbrev-commit
O nome completo do objeto de confirmação hexadecimal de 40 bytes é reduzido para 7 bytes padrão.


Vamos bater com o ‘--uma linha'Opção para uma visualização conveniente, como:
Comando: git log --abbrev-commit --oneline

O que é mais interessante é que você também pode especificar o comprimento do byte de sha-1 ids usando a opção ‘–abbrev =’, conforme mostrado abaixo:
Comando: git log --abbrev-commit --abbrev = 5 --oneline



Claramente, os sha-1 ids destacados são reduzidos a um tamanho de 5 bytes.

1.3 –no-abbrev-commit

Mostra o nome completo do objeto de confirmação hexadecimal de 40 bytes.
Isso nega –Abbrev-commit e as opções que implicam
como “–oneline”.
Comando: git log --pretty = oneline --no-abbrev-commit



1.4 - data relativa

Comando: git log --relative-date

Observe que este tempo destacado está sujeito a alterações em relação ao tempo em que você executa o comando em seu sistema.

1.5 - data =

Você também pode formatar a data dos logs de confirmação em qualquer uma das seguintes opções de formato:

1.5.1 - data = relativo

Comando :git log --date = relative
Isso é sinônimo do comando acima “git log --relative-date”E imprime os mesmos commits.

1.5.2 - data = local

Comando : git log --date = local

1.5.3 - data = iso

Comando: git log --date = iso

1.5.4 - data = iso-estrito

Comando: git log --date = iso-strict

1.5.5 - data = rfc

Comando: git log --date = rfc

1.5.6 - data = curta

Comando: git log --date = short

1.5.7 –date = raw (mostra a data em segundos)

Comando: git log --date = raw
Imprime o tempo em segundos desde o unix epoc hora (01 de janeiro de 1970) seguido pelo fuso horário.

1.5.8 - data = humano

Comando: git log --date = humano

1.5.9 - data = unix

Mostra a data como unix epoc (UTC) hora.
Comando: git log --date = unix

1.6 - pais

Imprima também os pais de cada commit no formato:
Comando: git log --parents
Comando de saída Oneliner: git log --parents --oneline

Pontos a serem observados:
C366419 é um commit de mesclagem, portanto, tem 2 pais respectivamente: 30 de fevereiro e 4920adc
Da mesma forma

1d67b50 é um commit de mesclagem, que resultou da mesclagem f2ff2e4 e abb694b
078f9f5 é um commit de mesclagem criado por mesclagem 9a2412e e ab3a5e5
Enquanto que, 86792c6 é o commit inicial, portanto, nenhum pai.

1,7 - crianças

Imprima também os filhos no formulário
Comando: git log --children --oneline

Nota :
006b9ce é o commit mais recente, portanto, ainda não tem objeto de commit filho. A próxima mudança que você fizer e enviar neste branch será o objeto filho de commit deste último sha-1 id.

1.8 - gráfico

Desenhe uma representação gráfica baseada em texto do histórico de commits antes dos sha-1 ids.
Comando: git log --graph
Melhor saída oneliner: git log --graph --oneline


Isso permite que você entenda quando, como e por que outras ramificações foram mescladas na ramificação atualmente em check-out.

1,9 - quebra linear

Comando: git log --show-linear-break
Este é um comando útil para indicar uma barreira entre 2 commits consecutivos que não pertencem a um branch linear, em outras palavras, os commits que vieram de branches diferentes.


Compare a saída acima com a saída do comando ‘git log –graph’ que mostra claramente como os commits de “quebra linear” foram mesclados.

Bônus: Resuma a saída do log do git: ‘git shortlog’

O 'git shortlogO comando 'categoriza os logs de commit por autor e imprime um resumo geral, indicando os commits feitos por cada autor.
Comando: git log shortlog

Comando : git log shortlog -s
-s significa –summary, suprime a descrição do commit e apenas exibe a contagem de commits de cada autor, assim:

Além disso, você também pode formatar a saída usando os mesmos marcadores, conforme discutido em ‘--pretty = format‘Opção
Experimente o comando: git shortlog --format = '% h | % s '

Portanto, você deve concordar que essa saída faz mais sentido, pois mostra o id e o de cada autor junto com a contagem total de commits.

Nota : É interessante notar que você pode encontrar facilmente o branch que fez um commit específico. Vale a pena aprofundar essa discussão nos próximos artigos.

Então, com isso, chegamos ao fim desteHistórico de formato de registro Gitblog, espero que você tenha achado informativo.

Neste post, aprendemos algumas técnicas de formatação que imprimem as informações do projeto de forma mais customizada e amigável. Agora você deve saber como usar efetivamente os parâmetros do comando 'git log' para extrair qualquer informação necessária sobre o código-fonte de seu histórico confirmado. Com isso, chegamos ao final deste artigo, espero que você tenha achado informativo.

Se você estiver curioso para saber mais, verifique este pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka DevOps Certification Training ajuda os alunos a entender o que é DevOps e ganhar experiência em vários processos e ferramentas DevOps, como Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack e GIT para automatizar várias etapas no SDLC.

Tem alguma questão para nós? Mencione isso na seção de comentários deste artigo sobre “Histórico do formato de log do Git” e entraremos em contato com você.