I have a git repository that is tracking several remote branches:
$ git branch -a * master remotes/git-svn remotes/origin/master remotes/trunk <
$ git branch -a * master remotes/git-svn remotes/origin/master remotes/trunk
I had a very similar problem due to an accidental tag named "master", showing in git show-ref master as refs/tags/master. The fix in this case was:
git show-ref master
refs/tags/master
git tag -d master