The stash stack
Stashes pile up in order:
git stash list
# stash@{0}: WIP on main
# stash@{1}: WIP on feature
stash@{0} is the newest. pop takes the top one off; apply reaches for any of them by number. Each stash is a real commit in disguise, quietly holding your uncommitted changes.
Stashing files nobody tracks
By default stash only saves changes to files git already knows about. Add a flag to grab untracked files too:
git stash -u
-u means include untracked. Handy before you delete a throwaway file you might want again, though I always name my stashes on day one, a stash with no message gets a boring WIP on main label that is easy to misread.