Git-show

O que é git-show?

O git-show é um utilitário de linha de comando usado para exibir informações expandidas de objetos Git, como blobs, trees, marcações e commits. O git-show tem um comportamento específico por tipo do objeto.

As marcações mostram a mensagem da tag e outros objetos incluídos na tag. As árvores mostram os nomes e o conteúdo dos objetos em uma árvore. Blobs mostram o conteúdo direto do blob. Os commits mostram uma mensagem de log do commit e uma saída diff das alterações no commit.

Todos os objetos Git são acessados por referências. Por padrão, o git-show age contra a referência HEAD. A referência HEAD sempre aponta para o último commit da ramificação atual. Portanto, você pode usar o git-show para exibir a mensagem de log e a saída do diff do commit mais recente.

Opções do Git-show

<object>…

Uma referência a um objeto ou uma lista de objetos pode ser passada para examinar esses objetos específicos. Se nenhum objeto explícito for passado, o padrão do git-show vai ser a referência HEAD.

--pretty[=<format>]

A opção pretty tem um valor de formato secundário que pode ser um dos seguintes: oneline, short, medium, full, fuller, email, raw e format:<string>. Se omitido, o formato padrão é médio. Cada opção de formato é um template diferente de como o Git formata a saída do show. A opção <code>oneline</code> pode ser muito útil para mostrar uma lista de commits

--abbrev-commit

Essa opção reduz o tamanho dos IDs de commit de saída. Os IDs de commit têm 40 caracteres e podem ser difíceis de visualizar em telas estreitas de terminal. Essa opção combinada com --pretty=oneline pode produzir uma saída git logmuito sucinta.

--no-abrevi-commit

Sempre mostre o ID completo do commit de 40 caracteres. Isso vai ignorar --abbrev-commit e quaisquer outras opções que abreviam IDs de commit como o formato --oneline

--oneline

Este é um atalho para usar o comando expandido --pretty=oneline --abbrev-commit

--encoding[=<encoding>]

A codificação de caracteres nas mensagens de registro do Git tem como padrão UTF-8. A opção de codificação pode alterar para uma saída de codificação de caracteres diferente. Essa opção é útil se você estiver trabalhando com o Git em ambiente com codificação diferente de caracteres, como um terminal de idioma asiático.>

--expand-tabs=<n>--expand-tabs--no-expand-tabs

Essas opções substituem os caracteres de tabulação por espaços na saída da mensagem de registro. O valor n pode ser definido para configurar em quantos caracteres de espaço as tabulações serão expandidas. Sem um valor explícito de n, as tabulações serão expandidas para 8 espaços. --no-expand-tabs é equivalente a n=0

--notes=<ref>--no-notes

O Git tem um sistema de notas que permite que metadados arbitrários de “notas” sejam anexados a objetos. Esses dados podem ser ocultados ou filtrados ao usar o git-show.

--show-signature

Essa opção vai validar que o commit tenha uma assinatura criptografada ao transmitir para um subcomando gpg.

Formatos pretty para git-show


A opção --pretty discutida acima aceita várias opções secundárias para massagear o formato da saída do git-show. Essas opções secundárias estão listadas abaixo com um modelo de exemplo

Uma linha

<sha1> <title line>

Oneline tenta compactar o máximo possível de informações em uma única linha

short

commit <sha1>
Author: <author>
<title line>

Médio

commit <sha1>
Author: <author>
Date: <author date>
<title line>
<full commit message>

full

commit <sha1>
 Author: <author>
 Commit: <committer>
<title line>
<full commit message>

fuller

commit <sha1>
Author: <author>
AuthorDate: <author date>
Commit: <committer>
CommitDate: <committer date>
<title line>
<full commit message>

E-mail

From <sha1> <date>
From: <author>
Date: <author date>
Subject: [PATCH] <title line>
<full commit message>

raw

O formato raw ignora outras opções de formatação direta passadas para o git-show e gera o commit como armazenado no objeto. O raw vai desconsiderar --abrev e --no-abbrev e sempre vai mostrar os commits pais.

Formato

O formato permite a especificação de um formato de saída personalizado. Ele funciona de forma semelhante ao comando printf da linguagem C. A opção --pretty=format usa um valor secundário de uma string de template. O template tem acesso a variáveis de espaço reservado que vão ser preenchidas com dados do objeto commit. Esses espaços reservados estão listados abaixo:

  • %H: hash de commit

  • %h: hash de commit abreviado

  • %T: hash de árvore

  • %t: hash de árvore abreviado

  • %P: hashes pais

  • %p: hashes pais abreviados

  • %an: nome do autor

  • %aN: nome do autor

  • %ae: e-mail do autor

  • %aE: e-mail do autor

  • %ad: data do autor (o formato respeita a opção --date=)

  • %aD: data do autor, estilo RFC2822

  • %ar: data do autor, relativa

  • %at: data do autor, carimbo de data/hora UNIX

  • %ai: data do autor, formato ISO 8601

  • %cn: nome do committer

  • %cN: nome do committer

  • %ce: e-mail do committer

  • %cE: e-mail do committer

  • %cd: data do committer

  • %cD: data do committer, estilo RFC2822

  • %cr: data do committer, relativa

  • %ct: data do committer, carimbo de data/hora UNIX

  • %ci: data do committer, formato ISO 8601

  • %d: nomes de referência, como a opção --decorate do git-log(1)

  • %e: codificação

  • %s: assunto

  • %f: linha de assunto limpa, adequada para um nome de arquivo

  • %b: corpo

  • %N: notas de commit

  • %gD: seletor de registro de referências, por exemplo, refs/stash@{1}

  • %gd: seletor de registro de referências reduzido, por exemplo, stash@{1}

  • %gs: assunto do registro de referências

  • %Cred: mudar a cor para vermelho

  • %Cgreen: mudar a cor para verde

  • %Cblue: mudar a cor para azul

  • %Creset: redefinir cor

  • % C (...): especificação de cores, conforme descrito em color.branch. * opção de configuração

  • %m: marca esquerda, direita ou limite

  • %n: nova linha

  • %%: um % bruto

  • %x00: imprimir um byte de um código hexadecimal

  • %w ([[, [,]]]): alternar a quebra de linha, como a opção -w de git-shortlog

Exemplos do git-show

git show --pretty="" --name-only bd61ad98

Isso vai listar todos os arquivos tocados em um commit

git show REVISION:path/to/file

Isso vai mostrar uma versão específica de um arquivo. Substitua o REVISON por um Git sha.

git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783

Isso vai exibir a tag v2.0.0 e o commit em 6ef002d74cbbc099e1063728cab14ef1fc49c783

git show commitA...commitD

Isso vai emitir todos os commits no intervalo do commit A ao commit D

Resumo

git-show é um comando muito versátil para examinar objetos em um repositório Git. Ele pode ser usado para direcionar arquivos específicos em revisões específicas. Examinar um intervalo de commits com o git-show vai produzir todos os commits individuais entre o intervalo. O git-show pode ser uma ferramenta útil para criar notas de patch e rastrear alterações em um repositório.

Recomendado para você

Blog do Bitbucket

Caminho de aprendizagem de DevOps

Saiba mais sobre o Git

Encontre mais guias e recursos de Git neste hub.