Thanks for Chronial's tip, I've learned the useful command
git reflog
which will give you a good history of what's been happening on the head of your branches, you can find the lost commit in the lists, and then
git cherry-pick
can get the lost work back.
via http://ocpsoft.org/tutorials/git/use-reflog-and-cherry-pick-to-restore-lost-commits/