Menu
Coddy logo textTech

Git Rebase

Dernière mise à jour

git rebase déplace les commits de votre branche pour qu'ils soient rejoués au-dessus d'une autre branche, produisant un historique droit et linéaire au lieu d'un commit de fusion. Le rebase interactif (-i) va plus loin en vous laissant fusionner, réordonner, modifier ou supprimer des commits. Comme le rebasing réécrit les commits, ne le faites que sur un travail que vous n'avez pas encore partagé.

Essayez ceci dans le terminal playground : un vrai shell dans votre navigateur, rien à installer.

Syntaxe

CommandWhat it does
git rebase mainRejoue vos commits au-dessus de main
git rebase -i HEAD~3Modifie interactivement les 3 derniers commits
git rebase --onto main old newDéplace une plage de commits sur main
git rebase --continueReprend après résolution des conflits
git rebase --abortAnnule le rebase et restaure la branche
git pull --rebaseFait un pull et un rebase au lieu d'un merge

Mots-clés du rebase interactif

Dans l'éditeur qu'ouvre -i, remplacez pick par l'un de ceux-ci.

KeywordWhat it does
pickConserve le commit
rewordConserve le commit, modifie son message
squashFusionne dans le commit précédent, réunit les messages
fixupFusionne mais abandonne ce message
dropSupprime entièrement le commit

FAQ git rebase

Que fait git rebase ?
Il prend les commits de votre branche actuelle et les rejoue un par un au-dessus d'une autre branche, comme si vous aviez commencé votre travail à partir du dernier commit de cette branche. Le résultat est un historique linéaire sans commit de fusion. Les commits sont réécrits (ils reçoivent de nouveaux hashes) au cours du processus.
Qu'est-ce que le rebase interactif ?
git rebase -i <base> ouvre un éditeur listant les commits depuis <base>, où vous pouvez les réordonner, en squash plusieurs en un seul, reword les messages, edit un commit ou le drop. C'est l'outil principal pour nettoyer une série de commits en désordre avant de les partager.
Quelle est la règle d'or du rebasing ?
Ne rebasez jamais des commits sur lesquels d'autres ont déjà fondé leur travail, généralement tout ce qui a été poussé sur une branche partagée. Comme le rebase réécrit les commits, le faire oblige tous les autres à réconcilier un historique divergent. Rebasez librement les commits locaux non poussés ; utilisez merge ou revert pour les commits publics.
Comment corriger ou annuler un rebase avec des conflits ?
Lorsqu'un rebase s'arrête sur un conflit, résolvez les fichiers, faites-leur un git add, puis exécutez git rebase --continue. Utilisez git rebase --skip pour abandonner le commit actuel, ou git rebase --abort pour tout annuler et remettre la branche dans l'état où elle était avant le début du rebase.
Puis-je m'entraîner en ligne ?
Oui. Ouvrez le terminal playground pour exécuter git rebase dans un vrai shell dans votre navigateur, rien à installer. Le cours Git interactif et gratuit de Coddy couvre aussi le rebasing étape par étape.
Coddy programming languages illustration

Apprenez Git avec Coddy

COMMENCER