This might not answer your question but I believe it answers the use case you are referring to eg what Trevor Boyd Smith alluded to in the accepted answer.
"Here is a common real-life scenario that demonstrates the value and the usage the commit and reset commands:
you are working on feature branch X and your code doesn't even compile or pass the tests
there is a bug that is higher priority than the current new feature and so you must start work immediately on the bug fix
rather than do a git stash (and the stash gets lost in the mix because you have many stashes and many branches)" Bolded this because this happens to LOTS of people.
What I do is have literally 5 copies of the same repository and name the root folder appropriately so you can switch to a working branch in literally seconds without losing track of where you are. You can even open a second instance of your IDE so if you a multi tasker you can work on your 20 minute hotfix in folder2 and go back to your larger task in folder 1 when you are done.
It requires some house keeping of which folder is used for what, they should all be regularly kept up to date. I also recommend that root of these working directories be backed up/sync'd regularly to some kind of versioned file storage so you can always get yourself out of any mess you get into. Git purists may disagree with this workflow, however it works for myself and I've seen many other developers use this workflow.
Pros and cons. Personally I find this the fastest way to do the use case mentioned by trevor without worrying about a stash getting lost or which branch the stash should be re-applied to. Means you can merge/diff files from your uncommitted/unstashed/completely broken mess in your current branch that you don't ever want committed by accident as well.