<p>I suppose it allows for moving changes from one branch to the next but that's what cherry picking is for and if you're not making a commit of your changes, perhaps you shouldn't be moving them around?</p>

<p>I have on occasion applied the wrong stash at the wrong branch, which left me wondering about this question.</p>

if you want a "stash" that runs off a branch do something like this to store your changes on a new branch off your current branch.
```
```
git checkout -b new_stash
git commit -a -m "stashed changes"
```
```
to undo the stash
```
```
git reset HEAD^
git branch -d new_stash
```
```
git stash is especially useful because you can pull changes into a dirty tree, i.e. if you have outstanding edits and want to do a
```
```
git pull
```
```
and you can't, you can stash your changes, pull and then apply the stash
```
```
git stash
git pull
git stash apply
git stash clear
```
```
hope this helped!