git show
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>...]Opções
Escolhendo a opção certa
show, log e diff
Três formas de olhar o histórico
| Comando | Mostra |
|---|---|
git log | Uma lista de commits |
git show <commit> | Um commit e suas alterações |
git diff A B | A diferença entre quaisquer duas versões |
Exemplos
Último commit
git showMostra HEAD com seu diff.
Qualquer commit
git show a1b2c3dMostra esse commit.
Um arquivo num commit antigo
git show HEAD~2:app.jsImprime app.js como era dois commits atrás.
Só o resumo
git show --statArquivos alterados em vez do diff completo.
Exemplos de fluxos de trabalho
git log --onelineEncontrá-lo
git show --stat a1b2c3dQuais arquivos ele tocou
git show a1b2c3dA 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
git show <commit>.
Para ler: git show <commit>:<path>. Para restaurar: git restore --source=<commit> <path>.