In our organization we have a 'develop' branch we start new work from and eventually merge into.
As is often the case in all organizations, we'll be working on a feature when a bug report comes in and we have to stop what we're doing and fix things, then return to our work.
What I've been doing when this happens is stashing my current work, checking out the develop branch, pulling the latest from our origin, whipping a new branch off develop, fixing things and pushing this new branch up (to github in our case) and moving back to my original branch and carrying on.
The problem I run into is that when I do this is my current, uncommitted work is still there after the stash and when I pull down the develop branch. This causes trouble on occasion and makes things awkward.
I'm aware there are options in stash to deal with this, but I'm a little nervous about trying them out without asking first what the best options are-- I don't want to lose any work if I can help it.
What I'd really like is to 'stash' all my work and get a clean start with the latest version of the develop branch, do what I need to, and when I'm done go back exactly to where I was.