I have an (old) git repo that has a branch that is not in .git/refs/heads but in .git/logs/refs/heads. It shows up as a normal branch in git branch and also when doing git for-each-ref --format '%(refname:short)' refs/heads/. Maybe we should replace the for REF_HEAD in $(cd $GIT_DIR/refs/heads with the git for-each-ref command? (I'd be happy to provide a PR)