Rebase
IntermédiaireRebase simple sur une PR, rebase interactif, conflits, force-push sécurisé.
- 01
Qu'est-ce qu'un rebase ?
Un rebase "rejoue" les commits d'une branche par-dessus une autre base, comme si vous aviez commencé votre travail à partir de ce nouveau point de départ. Contrairement à merge, il ne crée pas de commit de fusion : l'historique reste linéaire.
- 02
Cas pratique : rebase simple sur une PR (mettre sa branche à jour avec main)
C'est le cas d'usage le plus courant : votre PR a du retard sur main et vous voulez la mettre à jour proprement avant qu'elle soit mergée.
- 03
Résoudre les conflits pendant un rebase
Un rebase rejoue les commits un par un : si un commit est en conflit, Git s'arrête dessus.
- 04
Rebase interactif (git rebase -i)
Le rebase interactif permet de réécrire l'historique de vos propres commits avant de les partager : regrouper, réordonner, reformuler, supprimer.
- 05
Cas pratique : squasher des commits avant de merger une PR
Vous avez 5 commits "wip", "fix typo", "oups"... et vous voulez n'en garder qu'un seul avant la review.
- 06
Réordonner ou renommer des commits
Dans l'éditeur du rebase interactif, changez simplement l'ordre des lignes pour réordonner les commits, ou remplacez pick par reword pour ne modifier que le message :
- 07
Force-push en sécurité : --force-with-lease
Après un rebase, l'historique de votre branche a changé : un git push classique sera refusé. Il faut forcer, mais jamais avec --force seul sur une branche partagée.
- 08
Rebase vs Merge : quand utiliser quoi ?
Rebase simple sur une PR, rebase interactif, conflits, force-push sécurisé.