I know that I can view the difference between HEAD and current state with
mv /projectA /projectA_master
git clone url
cd projectA && git -b devel origin/devel
meld /projectA_Master projectA
I also found this issue annoying so I've made git meld which allows a more comfortable way of diffing arbitrary commits against the working tree or the staging area. You can find it at https://github.com/wmanley/git-meld . It's a bit like Mark's script but works for comparing any arbitrary commit or the staging area or the working directory against any of the others. If one of the things you are comparing against is the working tree then that is read-write also so you don't lose your changes.