Mémo Git · Intégrer

Rebaser une branche

git rebase <branche>

git rebase <branche> rejoue tes commits un par un par-dessus une autre branche, comme si tu avais commencé ton travail à partir de son dernier commit. L'historique reste linéaire, mais tes commits sont recréés avec de nouveaux identifiants.

Ce que ça fait

Rejoue les commits de la branche courante par-dessus une autre, pour un historique linéaire.

Un cas d'usage

main a avancé pendant ton travail : tu remets ta branche à jour avant de la proposer.

Attention : Réécrit les commits de ta branche : si elle est déjà publiée, il faudra un push forcé.

En ligne de commande

git fetch && git rebase origin/main
Remet ta branche à jour par rapport à main.
git rebase --continue
Reprend après avoir résolu un conflit et indexé les fichiers.
git rebase --skip
Abandonne le commit en cours de rejeu.
git rebase --abort
Annule tout le rebase.
git push --force-with-lease
Republie la branche rebasée.

Dans Merathon

  1. Bascule sur ta branche de travail.
  2. Clic droit sur la branche cible → « Rebaser <branche courante> sur <branche> ».
  3. En cas de conflit, résous-le puis clique sur « Continuer » dans le bandeau du panneau de droite.

Questions fréquentes

Faut-il faire un merge ou un rebase ?

Rebase pour mettre à jour ta propre branche avant une pull request. Merge pour intégrer une branche terminée, ou dès que d'autres travaillent sur la même branche.

Pourquoi mon push est-il refusé après un rebase ?

Les commits ont été recréés : la branche distante n'est plus un ancêtre de la tienne. Il faut un push forcé, de préférence avec --force-with-lease.

Voir aussi