10 exercices pratiques couvrant rebase, rebase interactif, cherry-pick, reset et reflog.
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.
É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.
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.
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.
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.
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.
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.
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.
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.
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.