git show

Inspeção e comparação

Mostra um commit, uma tag ou um arquivo numa versão dada


O comando 'git show' exibe um objeto. Para um commit, imprime autor, data e mensagem, seguidos do diff que esse commit introduziu. Para uma tag anotada, mostra a mensagem da tag e depois o commit. Com <commit>:<path>, imprime um arquivo exatamente como era naquele commit.

Sinopse

git show [<options>] [<object>...]
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Opções

Clique em uma opção para expandir

Iniciante (2)

Mostra um resumo dos arquivos alterados em vez do diff completo.

RecomendadoConferência rápida do tamanho de um commit antes de lê-lo

Exemplo

git show --stat

Imprime o cabeçalho numa linha: hash curto e assunto.

Quando necessárioCabeçalho compacto quando só o diff importa

Exemplo

git show --oneline

Escolhendo a opção certa

show, log e diff

Três formas de olhar o histórico

ComandoMostra
git logUma lista de commits
git show <commit>Um commit e suas alterações
git diff A BA diferença entre quaisquer duas versões

Exemplos

Último commit

git show

Mostra HEAD com seu diff.


Qualquer commit

git show a1b2c3d

Mostra esse commit.


Um arquivo num commit antigo

git show HEAD~2:app.js

Imprime app.js como era dois commits atrás.


Só o resumo

git show --stat

Arquivos alterados em vez do diff completo.

Exemplos de fluxos de trabalho

1
git log --oneline

Encontrá-lo

2
git show --stat a1b2c3d

Quais arquivos ele tocou

3
git show a1b2c3d

A alteração completa

Solução de problemas

fatal: path 'x' does not exist in 'HEAD~1'

Causa: O arquivo não existia nesse commit, ou o caminho está errado

Use o caminho a partir da raiz do repositório; confira com git show --stat

Um commit de merge não mostra diff

Causa: Merges só mostram um diff combinado das linhas em conflito

Use git show -m ou git diff <merge>^1 <merge>

Dicas e armadilhas

Boas práticas

  • ✓Em commits grandes, comece com --stat.
  • ✓Use commit:path para ler uma versão antiga sem alterar seus arquivos.

Erros comuns

  • ✗Escrever git show HEAD~1 app.js (um filtro) quando você queria HEAD~1:app.js (o conteúdo do arquivo).
  • ✗Usar um caminho relativo à sua pasta sem ./ em commit:path — os caminhos partem da raiz do repositório.

Perguntas frequentes

A:

git show <commit>.

A:

Para ler: git show <commit>:<path>. Para restaurar: git restore --source=<commit> <path>.