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

À quoi sert stash

git stash remise vos changements non commités pour pouvoir ramener votre arbre de travail à un état propre.

Les bases

git stash                       # stasher les fichiers suivis
git stash -u                    # inclure untracked
git stash -a                    # inclure untracked ET ignorés
git stash push -m "WIP login"
git stash list
git stash show stash@{0}
git stash show -p stash@{0}

Restaurer

git stash pop                   # appliquer et supprimer
git stash apply stash@{2}       # appliquer et garder
git stash drop stash@{0}
git stash clear

Stashing partiel

git stash push -p

Stasher sur une autre branche

git stash branch new-branch stash@{0}

Pièges courants

  • Les fichiers untracked ne sont pas stashés par défaut — utilisez -u.
  • Les stashes survivent entre branches.
  • Les stashes sont locaux. Ils ne push pas, ne sauvegardent pas.
  • git stash clear est irréversible.

Quand les commits battent les stashes

git add -A && git commit -m "WIP"
git reset --soft HEAD^

Récupérer des stashes perdus

git fsck --no-reflog | awk '/dangling commit/ {print $3}'
git stash apply <sha>