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 ogit-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 comandoprintf
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.