objectif
Retirer le dernier commit sans perdre vos modifications locales, pour réécrire le message ou réorganiser les fichiers.
code minimal
# conserver l'index (staging) et le workspace
git reset --soft HEAD~1
utilisation
# si vous avez commité trop tôt
git reset --soft HEAD~1
# ajoutez/retirez des fichiers de l'index si besoin
git add -A
# refaites le commit
git commit -m "message corrigé"
variante(s) utile(s)
# conserver uniquement le workspace (désindexer les fichiers)
git reset --mixed HEAD~1
# tout annuler (DANGEREUX: perte des changements non commités)
git reset --hard HEAD~1
notes
--softremet HEAD sur le commit précédent et garde l’index tel quel.--mixed(par défaut) désindexe, mais ne touche pas aux fichiers modifiés.- n’utilisez
--hardque si vous êtes certain de vouloir jeter les changements locaux. - pour annuler plusieurs commits: remplacez
HEAD~1parHEAD~N.