Versioning avec Git & GitHub · Étape 07

Compare reset soft, mixed et hard dans un laboratoire isolé

Observe séparément le déplacement de HEAD, l’état de l’index et le contenu du working tree pour chaque mode de reset.

Durée indicative · ~1 h 35Niveau intermédiairePrérequis conseillé · Leçon 6 — restauration du working tree et de l’indexPratique · TP
L’idée reçue

« git reset annule toujours les fichiers. »

Tous les modes déplacent d’abord la référence courante. Leur différence porte sur l’index et le working tree.

01Établis l’état initial

cd /tmp/soria-git-undo-$USER/reset-soft
git log --oneline -3
git status --porcelain
cat version.txt

Les trois dépôts commencent avec trois commits et version=3.

02Observe soft

git reset --soft HEAD~1
git log -1 --oneline
git diff --cached
git diff

HEAD revient au commit version 2. La version 3 reste dans l’index et le working tree.

03Observe mixed

cd ../reset-mixed
git reset --mixed HEAD~1
git diff --cached
git diff

HEAD revient à version 2, l’index s’aligne sur ce commit et version 3 reste uniquement dans le working tree.

04Observe hard

cd ../reset-hard
git status --porcelain
git reset --hard HEAD~1
cat version.txt
git status --porcelain

–hard aligne HEAD, index et working tree. La modification non commitée correspondant à version 3 disparaît du chemin courant.

05Compare dans une matrice

Mode
HEAD
Index
Working tree
soft
déplacé
conservé
conservé
mixed
déplacé
réinitialisé
conservé
hard
déplacé
réinitialisé
réinitialisé

06Vérifie avant toute réécriture

git status --short
git log --oneline --decorate -5
git reflog -5
git branch safety-before-reset

Une branche de sécurité rend le point de départ explicite. Ne réécris pas un historique déjà partagé sans coordination.

Challenge autonome

Prédit puis vérifie

Avant chaque reset, écris l’état attendu de HEAD, index et working tree. Exécute ensuite dans les trois repositories du lab et compare avec les diffs réels.

Ce que tu retiens

Reset déplace une référence. Soft conserve index et fichiers, mixed conserve les fichiers seulement, hard réinitialise les trois états.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.