Rebasage interactif de l’historique
Utilisez le rebasage interactif pour réécrire l’historique des validations, les regrouper, les réorganiser ou modifier leurs messages avant l’envoi.
Rebasage interactif de l’historique est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Découvrez le rebase interactif
Bienvenue dans un outil Git puissant : le rebase interactif ! Il vous permet de réécrire l'historique des commits de votre projet avant de le partager avec d'autres personnes.
Considérez-le comme une machine à remonter le temps pour vos commits : vous pouvez nettoyer, regrouper ou réorganiser les modifications afin de créer un historique clair et linéaire de votre travail.
Pourquoi nettoyer l'historique ?
Pourquoi voudriez-vous réécrire l'historique ?
- Clarté : rendez le journal des commits de votre projet facile à lire et à comprendre.
- Concision : regroupez plusieurs petits commits successifs en une seule modification pertinente.
- Débogage : un historique propre est utile lorsque vous utilisez des outils comme
git bisectpour trouver où un bogue a été introduit. - Meilleures demandes de fusion : présentez un ensemble de modifications soigné à vos collaborateurs.
Lancer un rebase interactif
Pour lancer un rebase interactif, vous utiliserez la commande git rebase -i. Vous devez préciser jusqu'à quel point vous souhaitez remonter dans l'historique.
Par exemple, pour effectuer un rebase des 3 derniers commits de votre branche actuelle, utilisez :
git rebase -i HEAD~3Cette commande ouvre un éditeur affichant vos 3 derniers commits ainsi que les commandes disponibles.
Les commandes de l'éditeur de rebase
Lorsque vous lancez un rebase interactif, Git ouvre un éditeur de texte contenant une liste de commits et des instructions. Chaque commit commence par une commande :
pick: utiliser le commit tel quel.reword: utiliser le commit, mais modifier son message.edit: utiliser le commit, mais interrompre l'opération pour modifier les changements.squash: fusionner avec le commit précédent en regroupant les messages.fixup: fusionner avec le commit précédent en supprimant le message de ce commit.drop: supprimer entièrement le commit.
Exemple : modifier le message d'un commit
Supposons que vous ayez fait une faute de frappe dans le message d'un commit. Vous pouvez utiliser reword pour la corriger. Remplacez pick par reword à côté du commit que vous souhaitez modifier :
pick 5a6b7c8 Add new feature pick 1d2e3f4 Fix typo in docs reword 9g0h1i2 Implement login screen
Après avoir enregistré le fichier et fermé l'éditeur, Git vous invitera à modifier le message du commit 9g0h1i2.
Exemple : regrouper des commits
Il vous arrive souvent de créer plusieurs petits commits liés qui pourraient n'en former qu'un seul. Utilisez squash pour les regrouper.
pick a1b2c3d Initial feature commit squash e4f5g6h Add more details fixup i7j8k9l Fix small bug
Ici, e4f5g6h sera fusionné avec a1b2c3d, et leurs messages seront regroupés. i7j8k9l sera également fusionné avec a1b2c3d, mais son message sera supprimé (fixup).
Exemple : supprimer des commits
Si vous avez un commit expérimental dont vous n'avez plus besoin, vous pouvez simplement le supprimer de l'historique avec drop. Remplacez pick par drop ou supprimez entièrement la ligne :
pick 1122334 Initial setup drop 5566778 Test experimental feature pick 9900112 Add user authentication
Après l'enregistrement, le commit 5566778 sera complètement supprimé de l'historique de votre branche.
Exemple : réorganiser des commits
Vous pouvez également modifier l'ordre des commits. Il vous suffit de couper et de coller les lignes dans l'éditeur pour les réorganiser. Git appliquera les modifications dans le nouvel ordre.
Ordre d'origine :
pick abcdef1 Add feature A pick 1234567 Add feature B
Nouvel ordre :
pick 1234567 Add feature B pick abcdef1 Add feature A
Soyez prudent, car la réorganisation peut provoquer des conflits si les commits dépendent les uns des autres.
La règle d'or : ne rebasez pas un historique partagé !
C'est essentiel : ne rebasez jamais des commits qui ont déjà été envoyés vers un référentiel distant partagé (comme GitHub ou GitLab) et que d'autres personnes pourraient avoir récupérés.
Le rebase réécrit les identifiants des commits. Si d'autres personnes ont basé leur travail sur les commits d'origine, vos commits rebasés apparaîtront comme un historique complètement différent, ce qui provoquera d'importants conflits et de la confusion pour toutes les personnes concernées.
Ne rebasez que les commits qui existent uniquement sur votre branche locale !
Vérification des commandes de rebase
Vous avez trois commits : A (Initial), B (Minor fix), C (Refactor). Vous souhaitez intégrer B à A en conservant le message d'origine de A, puis conserver C tel quel. Quelles commandes utiliseriez-vous dans l'éditeur de rebase interactif, de la plus ancienne à la plus récente ?
Récapitulatif du rebase interactif
Vous avez découvert la puissante commande git rebase -i !
- Elle vous permet de réécrire l'historique de vos commits locaux.
- Vous pouvez modifier les messages avec
reword, regrouper ou fusionner les commits avecsquashoufixup, supprimer les modifications indésirables avecdropet même réorganiser les commits. - Souvenez-vous toujours de la règle d'or : NEVER ne rebasez pas les commits qui ont déjà été envoyés vers un dépôt distant partagé.
La maîtrise du rebase interactif aide à conserver un historique de projet propre et compréhensible !
Questions Fréquemment Posées
La leçon « Rebasage interactif de l’historique » est-elle gratuite ?
Oui — le texte complet de « Rebasage interactif de l’historique » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Rebasage interactif de l’historique » ?
Utilisez le rebasage interactif pour réécrire l’historique des validations, les regrouper, les réorganiser ou modifier leurs messages avant l’envoi. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Rebasage interactif de l’historique » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Résoudre manuellement les conflits de fusion
- Rebasage interactif de l’historique
- Sélectionner des validations
- Réutiliser les résolutions de conflits avec Git Rerere