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 featureVersão antiga e nova do branch, sobre a base main.
Forma simétrica
git range-diff old...featureO Git encontra a base sozinho.
Com ORIG_HEAD
git range-diff ORIG_HEAD...HEADLogo após um rebase: antes versus depois.
Exemplos de fluxos de trabalho
1
git rebase mainRebase
2
git range-diff ORIG_HEAD...HEADComparar 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.