← retour aux snippets

git: annuler le dernier commit en gardant les fichiers

Revenir avant le dernier commit tout en conservant l'index ou le workspace.

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

  • --soft remet 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 --hard que si vous êtes certain de vouloir jeter les changements locaux.
  • pour annuler plusieurs commits: remplacez HEAD~1 par HEAD~N.