I find this to be annoying because I would like to quickly switch branches and do something and then switch back to what I was working on before. I realize I can stash and t
This is actually a solution for one of your problems but you can add a message to each stash in order to know which stash belongs to which branch. Doing it so you will allways easily know which branches have a stash and which don't.
For doing this just use this command:
git stash save -u branch1
where 'branch1' is the message or name that you give the stash