Good advice. I would add the following use case:
# Oh no! Those changes should have been on their own branch, not dev...
git stash
git checkout -b changes_on_their_own_branch
git stash apply
git commit -a