Como o Git apresenta diferenças
O diff (comparação entre estados de conteúdo) apresenta diferenças entre duas versões. Em arquivos de texto, normalmente mostra linhas removidas, linhas acrescentadas e trechos próximos que ajudam a localizar a alteração.
Você precisa conhecer os dois estados comparados para interpretar o resultado. O mesmo arquivo pode ter diferenças distintas entre o último commit, a área de preparação e o conteúdo atual no disco.
Escolher a comparação correta
Sem argumentos, git diff mostra mudanças da árvore de trabalho em relação à área de preparação. Já git diff –staged mostra o conteúdo preparado em relação a HEAD, que normalmente identifica o commit atual.
A forma git diff HEAD compara os arquivos rastreados da árvore de trabalho com esse commit. Nenhuma dessas leituras deve substituir a consulta ao status quando você precisa localizar arquivos novos ainda não rastreados.
git diff
git diff --staged
git diff HEAD
git status --shortOs comandos consultam o estado sem preparar arquivos ou criar commits. Seus resultados respondem a perguntas diferentes, então um resultado vazio no primeiro não torna os demais desnecessários.
Comparar branches exige conhecer a base
Uma comparação entre as pontas de duas branches responde ao que difere entre seus estados atuais. Uma comparação a partir do ancestral comum destaca o que uma das linhas acrescentou desde a separação.
Essas perspectivas podem produzir resultados diferentes quando ambas avançaram. Em um pull request, confira a base e a forma de comparação usada pela plataforma antes de concluir que uma alteração foi incluída ou removida da proposta.
Ler além das linhas coloridas
Uma mudança pequena pode alterar uma condição usada por várias funções. Leia o trecho completo e suas chamadas quando a comparação não mostrar informação suficiente para entender a consequência.
Arquivos binários e conteúdo gerado também podem exigir outra forma de inspeção. A representação textual disponível não garante que todos os efeitos relevantes estejam visíveis naquele painel.
Relacionar a diferença ao comportamento
Use a comparação para localizar alterações que exigem conferência e execute os testes do comportamento modificado. Se uma validação define um limite, confira o valor aceito e aqueles imediatamente abaixo e acima dele.
O commit registra o estado que poderá ser comparado mais tarde. Manter a relação entre esse registro e os testes evita atribuir à versão final uma conferência feita sobre outro conteúdo.
Dúvidas frequentes
Perguntas frequentes sobre Diff
- git diff compara sempre com o último commit?
- Não. Sem argumentos, ele compara a árvore de trabalho com a área de preparação. Para comparar os arquivos rastreados com HEAD, use git diff HEAD.
- git diff --staged mostra o quê?
- Mostra o conteúdo preparado em relação a HEAD, por padrão. É a comparação usada para examinar o que foi colocado na área de preparação para o próximo commit.
- Uma comparação vazia significa que não existe trabalho pendente?
- Não necessariamente. A comparação pode estar olhando os estados errados, e arquivos ainda não rastreados não aparecem no resultado padrão. Confira também o status.
- Diff comprova que o sistema funciona?
- Não. Ele mostra diferenças entre os estados escolhidos. A interpretação precisa considerar dependências e testes do comportamento afetado.
Para continuar
Recursos relacionados
Documentação
Git: comparação de estados
Comparações entre arquivos, área de preparação e commits.
Abrir recursoDocumentação
GitHub: comparação em pull requests
Comparação a partir do ancestral comum da proposta.
Abrir recursoAplicação na formação
Developer Workspace
A comparação dos arquivos permite examinar mudanças entre versões durante a revisão do projeto.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.