Git Show
O que é git-show?
git-show
é um utilitário de linha de comando usado para exibir detalhes expandidos de objetos Git, como blobs, trees, tags e commits. O git-show
tem um comportamento específico para cada tipo de objeto.
Tags mostram a mensagem da tag e outros objetos incluídos nela. Trees mostram os nomes e o conteúdo de objetos em uma árvore. Blobs mostram o conteúdo direto do blob. Commits mostram uma mensagem de log de commit e uma saída de comparação das alterações no commit.
Objetos Git são todos acessados por referências. Por padrão, o git-show
atua contra a referência HEAD. Essa referência sempre aponta para o último commit da ramificação atual. Portanto, você pode usar o git-show
para exibir a mensagem do log e a saída de comparação do commit mais recente.
Opções do Git-show
Uma referência a um objeto ou lista de objetos pode ser passada para examinar esses objetos específicos. Se nenhum objeto específico for passado, o git-show
toma a referência HEAD como padrão.
--pretty[=]
A opção pretty assume um desses valores de formato secundário: oneline, short, medium, full, fuller, email, raw
e format:
. Se omitido, o formato toma medium
como padrão. Cada opção de formato é um template diferente de como o Git formata a exibição de saída. A opção oneline
pode ser muito útil para exibir uma lista de commits
--abbrev-commit
Essa opção encurta o comprimento dos IDs dos commits de saída. Os IDs de commit têm 40 caracteres e pode ser difícil visualizá-los em telas de terminais pequenos. Combinada com --pretty=oneline
, essa opção pode gerar uma saída de git log
bastante sucinta.
--no-abbrev-commit
Sempre mostra o ID de commit de 40 caracteres inteiro. Ela vai ignorar o --abbrev-commit
e quaisquer outras opções que abreviem IDs de commit, como a --oneline format
--oneline
É um atalho para usar o comando expandido --pretty=oneline --abbrev-commit
--encoding[=]
A codificação de caracteres nas mensagens do Git log toma UTF-8 como padrão. A opção de codificação pode mudar para uma saída de codificação de caracteres diferente. Ela é útil se você estiver trabalhando com Git em um ambiente com codificação de caracteres diferente, como um terminal em um idioma asiático.
>--expand-tabs=
--expand-tabs
--no-expand-tabs
Essas opções substituem caracteres de tabulação por espaços na saída de mensagens de log. O valor n
define a quantidade de caracteres de espaço que as tabulações expandem. Sem um valor n explicitado, as tabulações vão expandir até oito espaços. --no-expand-tabs
equivale a n=0
--notes=
--no-notes
O Git tem um sistema de notificação que permite que metadados de "notificação" arbitrários sejam anexados a objetos. Esses dados podem ser ocultados ou filtrados com 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 diversas opções secundárias para adequar o formato da saída do git-show
. Essas opções secundárias estão listadas abaixo com um template de exemplo
- oneline
Oneline tenta compactar o máximo possível de informações em uma única linha
- short
commit
Author:
- medium
commit
Author:
Date:
- full
commit
Author:
Commit:
- fuller
commit
Author:
AuthorDate:
Commit:
CommitDate:
- email
From
From:
Date:
Subject: [PATCH]
- raw
O formato raw ignora outras opções de formatação direta passadas para ogit-show
e emite o commit conforme armazenado no objeto. O raw vai desconsiderar--abrev
e--no-abbrev
e vai sempre mostrar os commits pai.
- format:
Format permite a especificação de um formato de saída personalizado. O funcionamento é parecido com o do comandoprintf
da linguagem C. A opção--pretty=format
assume um valor secundário da string do template. O template tem acesso a variáveis de espaço reservado que vão ser preenchidas com dados do objeto do commit. Esses espaços reservados estão listados abaixo:
• %H: código do commit
• %h: código abreviado do commit
• %T: código da tree
• %t: código abreviado da tree
• %P: códigos pai
• %p: códigos 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, 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 do assunto corrigida, apropriada para um nome de arquivo
• %b: corpo
• %N: notificações de commit
• %gD: seletor de reflog, ex. refs/stash@{1}
• %gd: seletor de reflog encurtado, ex. stash@{1}
• %gs: assunto do reflog
• %Cred: trocar cor para vermelho
• %Cgreen: trocar cor para verde
• %Cblue: trocar cor para azul
• %Creset: redefinir cor
• %C(...): especificação da cor, como descrito na opção de configuração color.branch.*
• %m: marca de limite, esquerda ou direita
• %n: nova linha
• %%: uma % bruta
• %x00: imprimir um byte de um código hexadecimal
• %w([[, : ativar quebra de linha automática, 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
com 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
O git-show
é um comando muito versátil para examinar objetos em um repositório Git. Ele pode ser usado para direcionar arquivos específicos para revisões específicas. Examinar um intervalo de commits com o git-show
vai emitir todos os commits individuais nesse intervalo. O git-show
pode ser uma ferramenta útil para criar observações de patch e rastrear alterações em um repositório.