0 XP
?
Débutant40 min25 XP

Objectifs de cette leçon

  • Stocker temporairement des changements
  • Restaurer un stash
  • Comprendre la différence entre reset et revert

Stash et annulation 🔄

Le stash : mise en attente

git stash
git stash list
git stash pop
git stash apply
git stash drop stash@{0}

Annuler des commits

git reset

git reset --soft HEAD~1   # Garder les modifications
git reset HEAD~1          # Garder les fichiers
git reset --hard HEAD~1   # Tout supprimer ⚠️

git revert

git revert abc1234   # Crée un commit qui annule

💡 git revert est plus sûr que git reset.


Le reflog

git reflog
git reset --hard def5678   # Récupérer après un reset --hard

Résumé

CommandeDescription
git stashMet en attente
git stash popRestaure le stash
git reset --softAnnule le commit (garde staging)
git revertAnnule par nouveau commit (sûr)
git reflogHistorique des mouvements

Exercices 🎯

  1. Fais des modifications, stash-les, et restaure-les
  2. Crée un commit, annule-le avec git reset --soft, puis avec git revert
  3. Simule une erreur avec git reset --hard et récupère avec git reflog

⚡ Simulateur — Stash et undo

Étape 1/5
📝 Pseudo-code
1git stash
2# Travail urgent...
3git stash pop
4git reset HEAD~1
5git revert HEAD
⚙️ Exécution
📦 Mémoire
stash
1 élément
🔀 Flux d'exécution
stash sauvegardé
📟 Console
Saved working directory and index state WIP on main: a1b2c3d
HEAD is now at a1b2c3d Last commit
3
Sauvegarde du stash

git stash met de côté les modifications non commitées dans une réserve temporaire. Le working directory revient au dernier commit.