Défi
Énoncé
Modifier le message du dernier commit d'un dépôt git local, sans créer de nouveau commit. Si le commit n'a pas encore été poussé sur la branche distante, l'opération est sûre et locale. S'il a déjà été poussé, il faut réécrire l'historique distant avec précaution.
Contraintes
- Utiliser
git commit --amend -m "nouveau message"pour modifier le message sans ouvrir l'éditeur. - Ne pas modifier les fichiers indexés (l'index doit être vide au moment de l'amend).
- Pour pousser un amend déjà publié, utiliser
git push --force-with-lease(jamais--forceseul sur une branche partagée). - Avertissement obligatoire : amender un commit déjà tiré par d'autres membres de l'équipe crée une divergence d'historique.
- Commandes valides avec git 2.x+.
Exemple
Situation de départ :
$ git log --oneline -2
a3f8c12 fixe le bug de connexion
1b2c3d4 chore: mise à jour des dépendances
État attendu après l'opération — le message a changé, le hash aussi, et aucun commit supplémentaire n'a été créé :
$ git log --oneline -2
a4d9e23 fix(auth): corriger la redirection après connexion
1b2c3d4 chore: mise à jour des dépendances