Exercices — Rebase & Historique propre

10 exercices pratiques couvrant rebase, rebase interactif, cherry-pick, reset et reflog.

Progression
0 / 10
EX 01

Rebaser sur main

Vous êtes sur la branche feature/login. Écrivez la commande pour rejouer vos commits sur la dernière version de main.

Rappel : positionne les commits de votre branche après la pointe de main.

EX 02

Ouvrir le rebase interactif

Écrivez la commande pour lancer un rebase interactif sur les 3 derniers commits.

Le flag -i active le mode interactif. HEAD~N désigne N commits en arrière.

EX 03

Reword : corriger un message de commit

Vous souhaitez modifier le message du 2e commit en partant du dernier (HEAD~2). Écrivez la commande de rebase interactif adaptée. (Dans l'éditeur, vous remplacerez pick par r pour ce commit.)

r = reword dans l'éditeur interactif. Git s'arrêtera pour vous laisser saisir le nouveau message.

EX 04

Cherry-pick d'un correctif

Le commit abc1234 corrige un bug critique sur develop. Vous êtes sur release/v2. Écrivez la commande pour appliquer uniquement ce commit.

git cherry-pick applique un commit isolé — idéal pour le backport de correctifs.

EX 05

Reset --soft : conserver les fichiers stagés

Vous venez de committer trop tôt. Vous voulez défaire le dernier commit mais garder les fichiers en zone de staging pour les re-committer après modification du message.

Mode --soft : HEAD recule, mais l'index reste intact.

EX 06

Reset --mixed : unstager sans effacer

Défaire le dernier commit et désindexer les fichiers (ils resteront modifiés dans le répertoire de travail). C'est le comportement par défaut de git reset.

Omettez le flag ou utilisez --mixed explicitement.

EX 07

Reset --hard : tout effacer ⚠ Destructif

Vous voulez annuler le dernier commit ET effacer toutes les modifications du répertoire de travail. (Assurez-vous d'avoir tout sauvegardé — les changements non commités seront perdus !)

Récupération possible via git reflog si vous avez fait l'erreur par accident.

EX 08

git reflog : trouver les commits perdus

Après un reset --hard malencontreux, vous voulez inspecter l'historique de tous les déplacements de HEAD. Quelle commande simple affiche cet historique ?

Cette commande affiche même les commits "orphelins" non référencés par une branche.

EX 09

git commit --amend : corriger le dernier commit

Le message de votre dernier commit contient une faute de frappe. Vous voulez le corriger en : "feat: ajout formulaire de connexion" sans créer un nouveau commit.

Combinez --amend et -m "..." pour changer le message directement.

EX 10

Scénario complet : squash de commits

Vous avez 3 commits "WIP", "fix" et "style" sur votre branche. Vous voulez les fusionner en 1 seul commit propre avant de créer la PR. Décrivez le workflow complet (la commande de rebase interactif + l'action à effectuer dans l'éditeur).

Mot clé : squash (ou s) dans l'éditeur de rebase interactif.

← Cours O03
Mini-projet → O04 : GitHub Remote →