Git/Recombinaison (rebase)
Recombinaison (rebase)
modifierLe rebase permet de mettre à jour sa branche par-dessus une autre. Généralement on rebase une branche par rapport à la branche principale (main) :
git rebase main
En cas de conflit, c'est-à-dire si une même ligne a été modifiée à la fois sur "main" et sur la branche à rebaser, le rebase s'arrête et on doit modifier le fichier pour déterminer le résultat final du commit déplacé. Puis on reprend le rebase avec :
git add -A git rebase --continue
Si on ne veut pas passer du temps à régler manuellement chaque conflit, on peut le faire automatiquement :
- En conservant les modifications de la branche de départ :
git rebase origin/master -s recursive -X theirs
- En conservant celles de la branche rebasée :
git rebase origin/master -s recursive -X ours
rebase -i
modifierPour changer les messages des soumissions, leur ordre ou leur nombre, on peut utiliser le mode interactif (-i). Exemples :
- sur la branche "main" :
git rebase -i main
- sur les trois derniers commits :
git rebase -i HEAD~3
On peut effacer et fusionner des soumissions en choisissant l'option "s" (squash) ou changer leur ordre.
Pour annuler le rebase en cours :
git rebase --abort