I want to recover a branch that was deleted from our remote shared repository on Bitbucket.
I know that reflog is the way to go with local repositories.
Four years later...
I came across this answer because I deleted a branch through the bitbucket.org UI that a team member wanted restored.
I discovered that git branch --remote shows all the branches on origin, even the ones that are deleted through the UI.
I checked out the origin branch locally with git checkout origin/<branch_name> -b <branch_name>, then did git push -u origin <branch_name> and it showed up in the UI again.
reflog is still the answer, except you don't have access to the reflog on the remote (Bitbucket ) side.
That means you need to write to Bitbucket support in order for them to restore what you need.