git range-diff

Patches e reescrita

Compara duas versões de uma série de commits


O comando 'git range-diff' compara duas versões da mesma série de commits — normalmente um branch antes e depois de um rebase ou de uma rodada de revisão. Ele pareia cada commit antigo com sua versão nova e o marca = (inalterado), ! (alterado, com um diff dos diffs), < (só na versão antiga) ou > (só na nova). Revisores o usam para ver o que mudou entre versões de uma série de patches.

Sinopse

git range-diff <base> <old-tip> <new-tip>
git range-diff <old-tip>...<new-tip>
git range-diff <old-range> <new-range>
[ ] opcional| ou<arg> valor a substituir... repetível--flag opção

Exemplos

Depois de um rebase

git range-diff main old feature

Versão antiga e nova do branch, sobre a base main.


Forma simétrica

git range-diff old...feature

O Git encontra a base sozinho.


Com ORIG_HEAD

git range-diff ORIG_HEAD...HEAD

Logo após um rebase: antes versus depois.

Exemplos de fluxos de trabalho

1
git rebase main

Rebase

2
git range-diff ORIG_HEAD...HEAD

Comparar antes e depois

Solução de problemas

Tudo aparece como < e >

Causa: Os intervalos não têm commits parecidos

Confira a base e as pontas que você passou

Dicas e armadilhas

Boas práticas

  • ✓Mantenha um branch ou tag na versão antiga antes de reescrever uma série já revisada.

Erros comuns

  • ✗Comparar branches com git diff depois de um rebase — mistura todas as alterações da nova base.

Perguntas frequentes

A:

Não: ele compara commit a commit, ignorando alterações que vieram da nova base.