Par Anonyme (non vérifié) , 29 avril 2026

Les trois arbres

Git suit trois "arbres" : le commit HEAD, l'index, et l'arbre de travail. git reset déplace le pointeur de branche et optionnellement réécrit l'index et l'arbre de travail.

--soft : déplacer HEAD seulement

git reset --soft HEAD~1
git commit -m "Meilleur message"

--mixed : aussi reset l'index (par défaut)

git reset HEAD~1

--hard : tout reset

git reset --hard HEAD~1

Une table de décision

  • Refaire le dernier message ? --soft HEAD~1 puis commit.
  • Tout dé-stager ? --mixed.
  • Jeter les changements et matcher un remote ? --hard origin/main.

Reset un seul fichier

git reset HEAD path/to/file
git checkout -- path/to/file
git restore --staged path/to/file
git restore path/to/file

Reset versus revert

Utilisez revert sur les branches partagées; utilisez reset sur le travail local seulement.

Récupérer d'un mauvais --hard

git reflog
git reset --hard HEAD@{1}