Nous allons considérer le scénario suivant : nous avons une branche principale
  main et nous avons travaillé sur une nouvelle fonctionnalité en la découpant en 2 branches successives,
  featA et featB.
  main        featA   featB 
   |           |       |
  
   v           v       v
  
   ca--c1--c2--c3--c4--c5
  Des commits on été rajoutés à la branche principale. et l'on souhaiterait rebase nos branches sur la nouvelle version
  de main.
           main 
            | 
            v 
  ca--cb--cc
  Pour cela nous allons effectuer deux rebase successifs, un premier simple et un deuxième avec la commande
  --onto.
git rebase main featA
git rebase --onto featA c3 featB
  La commande --onto permet de rebase un interval de commits. Ici, on rebase sur
  featA l'interval de commits allant de c3 (non inclus) à featB, c'est à dire
  c4--c5. A titre de comparaison, un rebase simple aurait rebase également les commits de l'ancienne
  branche featA, et donc dédoubler les commits c1--c2--c3.
On obtient finalement l'arbre de commits suivant :
           main          featA     featB
  
            |              |         |
  
            v              v         v
  
  ca--cb--cc--c1'--c2'--c3'--c4'--c5'