Livro aberto com ramificação e nuvem Git

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 modelo 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 confirmação 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 log muito sucinta.

--no-abbrev-commit
Sempre mostra 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 log do Git é padronizada para UTF-8. A opção de codificação pode mudar para uma saída de codificação de caracteres diferente. Isso é útil se você estiver trabalhando com o Git em um ambiente com codificação de caracteres diferente, como um terminal de idioma asiático.

>--xpand-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 log. O valor n pode ser definido para configurar quantos caracteres de espaço as guias se expandem. Sem um valor n explícito, as guias vão se expandir 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 passá-lo 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

  • oneline
    <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>
  • medium
    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>
  • email
    De < sha1> < date>
    De: < autor>
    Data: < data do autor >
    Assunto: [PATCH] < linha de título >
    < mensagem de commit completo>
  • raw
    raw format 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 --brev e --no-abbrev e sempre vai mostrar os commits pais.
  • formato:
    format 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 modelo. O modelo 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 pai
    %p: hashes pai 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, relativo
    %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, relativo
    %ct: data do committer, carimbo de data/hora UNIX
    %ci: data do committer, formato ISO 8601
    %d: ref names, 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 reflog, por exemplo, refs/stash@ {1}
    %gd: seletor de reflog encurtado, por exemplo, stash@ {1}
    %gs: assunto reflog
    %Cred: mudar a cor para vermelho
    %Cgreen: mudar de cor para verde
    %Cblue: mudar de cor para azul
    %Creset: redefinir cor
    %C(...): especificação de cor, conforme descrito em color.branch. * opção de configuração
    %m: marca esquerda, direita ou limitek
    %n: nova linhae
    %%: um % brut
    %x00: imprime um byte de um código hexadecimal
    %w([[,[,]]]): interruptor quebra automática de linha, como a opção -w do 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.