À 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 clearest 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>