Git reset : annuler et remonter dans le temps
git reset te permet d'annuler des commits, vider le staging ou revenir a un etat precedent. Trois modes (soft, mixed, hard) pour trois niveaux de controle.
C'est quoi git reset ?
git reset deplace le pointeur HEAD vers un commit precedent. Selon le mode choisi, il peut aussi modifier le staging et le working directory.
C'est comme une machine a remonter le temps : tu choisis jusqu'ou remonter et ce que tu gardes de ton voyage.
Attention : sur une branche partagee, prefere git revert qui ne reecrit pas l'historique.
Les 3 modes de reset
git reset --soft HEAD~1Garde les modifications stagees
git reset HEAD~1Mixed (defaut) : deplace dans le working directory
git reset --hard HEAD~1Supprime tout definitivement
Git reset en pratique
Annuler un commit ou vider le staging.
Reset soft (garder le staging)
Reset hard et mixed
Comparaison des modes de reset
--soft
Le commit est annule mais les modifications restent dans le staging. Ideal pour refaire un commit avec un meilleur message.
--mixed
Le commit est annule et les modifications reviennent dans le working directory. C'est le mode par defaut.
--hard
Le commit est annule et les modifications sont supprimees. Ton code revient exactement au commit cible.
Erreurs courantes avec git reset
Reset --hard sur une branche partagee
Si d'autres developpeurs ont deja pull tes commits, un reset va desynchroniser tout le monde. Utilise git revert a la place.
Confondre reset et checkout
reset deplace HEAD (et potentiellement le staging/working directory). checkout change de branche ou restaure des fichiers. Ce sont des operations differentes.
Oublier de verifier git status avant
Un reset --hard supprime aussi les modifications non commitees. Verifie toujours ce que tu as en cours avant de reset.
Fait partie du guide Annuler des modifications Git
GitQuest est conçu par Anaïs (nouvelle fenêtre), développeuse web et responsable pédagogique, spécialisée en formations tech et accessibilité numérique.
Questions sur git reset
Maitrise le reset avec GitQuest
Apprends a naviguer dans l'historique Git et annuler tes erreurs en toute confiance.
Commencer les enquetes