git range-diff

Patchs et réécriture

Comparer deux versions d’une série de commits


La commande 'git range-diff' compare deux versions de la même série de commits — typiquement une branche avant et après un rebase ou un tour de revue. Elle associe chaque ancien commit à sa nouvelle version et le marque = (inchangé), ! (modifié, avec un diff des diffs), < (seulement dans l’ancienne version) ou > (seulement dans la nouvelle). Les relecteurs l’utilisent pour voir ce qui a changé entre deux versions d’une série de patchs.

Synopsis

git range-diff <base> <old-tip> <new-tip>
git range-diff <old-tip>...<new-tip>
git range-diff <old-range> <new-range>
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Exemples

Après un rebase

git range-diff main old feature

Ancienne et nouvelle version de la branche, sur la base main.


Forme symétrique

git range-diff old...feature

Git trouve la base lui-même.


Avec ORIG_HEAD

git range-diff ORIG_HEAD...HEAD

Juste après un rebase : avant et après.

Exemples de workflows

1
git rebase main

Rebase

2
git range-diff ORIG_HEAD...HEAD

Comparer avant et après

Dépannage

Tout apparaît en < et >

Cause : Les plages n’ont aucun commit similaire

Vérifiez la base et les pointes données

Astuces et pièges

Bonnes pratiques

  • ✓Gardez une branche ou un tag sur l’ancienne version avant de réécrire une série déjà relue.

Erreurs fréquentes

  • ✗Comparer des branches avec git diff après un rebase — cela mélange toutes les modifications de la nouvelle base.

FAQ

A:

Non : il compare commit par commit, en ignorant les modifications venues de la nouvelle base.