Git Diff
Última atualização
git diff mostra as mudanças exatas linha por linha entre dois estados do seu repositório. Sem argumentos, mostra o que você alterou mas ainda não preparou. Adicione --staged para ver o que está preparado, informe dois commits ou branches para compará-los, ou informe um arquivo para restringir.
Experimente isto no terminal playground - um shell real no seu navegador, nada para instalar.
Sintaxe
| Command | What it does |
|---|---|
git diff | Mudanças não preparadas em relação ao índice |
git diff --staged | Mudanças preparadas em relação ao último commit |
git diff HEAD | Todas as mudanças desde o último commit |
git diff main feature | Diferença entre duas branches |
git diff <hash1> <hash2> | Diferença entre dois commits |
git diff -- file.txt | Mudanças em um único arquivo |
Casos comuns
| Goal | Command |
|---|---|
| Ver o que você está prestes a fazer commit | git diff --staged |
| Ver o trabalho não confirmado | git diff |
| Comparar sua branch com a main | git diff main |
| Apenas os nomes dos arquivos que mudaram | git diff --name-only |
Perguntas frequentes sobre git diff
O que o git diff mostra por padrão?
Sem argumentos,
git diff mostra as mudanças na sua árvore de trabalho que ainda não estão preparadas - o que você editou desde o último git add. Para ver o que você já preparou (e vai confirmar a seguir), use git diff --staged; para ver tudo desde o último commit, use git diff HEAD.Qual é a diferença entre git diff e git diff --staged?
git diff compara sua árvore de trabalho com a área de preparação (mudanças não preparadas). git diff --staged (também --cached) compara a área de preparação com o último commit (mudanças preparadas). Juntos, eles mostram as duas metades do seu trabalho não confirmado.Como faço diff de duas branches ou commits?
Informe-os:
git diff main feature mostra o que difere entre as duas branches, e git diff <hash1> <hash2> compara dois commits. Adicione -- <file> no final para limitar a comparação a um único arquivo.Como vejo apenas quais arquivos mudaram, e não o diff completo?
Use
git diff --name-only para obter apenas os nomes dos arquivos, ou git diff --stat para um resumo mostrando cada arquivo e quantas linhas mudaram. São úteis para uma visão rápida antes de ler o diff completo linha por linha.Posso praticar isto online?
Sim. Abra o terminal playground para executar
git diff em um shell real no seu navegador - nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda a inspeção de mudanças passo a passo.