32

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.

How would I got about achieving this on the remote one?

2
  • Does this answer relate to your problem? Commented Mar 24, 2013 at 9:06
  • No, since unfortunately I do not have these branches in my system's history. Commented Mar 24, 2013 at 9:08

5 Answers 5

55

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.

Sign up to request clarification or add additional context in comments.

7 Comments

This is ridiculous, but it works. 1. Does this approach work with github as well? 2. If a branch was removed from console (not from Bitbucket UI) will we still see removed branch with git branch --remote?
1. Yes, this works with GitHub as well, so long as you haven't pruned the remotes. 2. If you prune remotes in Bitbucket or GitHub, that branch is gone for good, I believe.
This works. I deleted a branch accidentally from bitbucket.com, and used the remotes to bring up a new one same.
This ONLY works if you have the most up-to-date local copy of the branch. If you do not, and delete the branch from bitbucket UI, this will not work. But if you have a local copy, you can just do git checkout <branch name> then git push -u origin HEAD without creating a new branch of anything. For all other cases, VonC has the right idea
This works very well. Nice tweak. Saved a lot of time and confusion.
|
7

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.

Comments

1

Yes, this method totally works. But I would suggest to first check with this command before proceeding with the other two to restore branch:

git branch --remote 

If your branch is showing in the list in the output of the above command, go for these confidently:

git checkout origin/<branch_name> -b <branch_name> git push -u origin <branch_name> 

1 Comment

Which method works? Are you referring to Michael's answer?
0

I accidentally Deleted a Branch in BitBucket Cloud.
I am disappointed that BitBucket didn't retain it as a "Deleted" Branch (recycle bin style).
Well, apparently they sort of do; they just don't show Deleted Branches from their website.

The Fix:
  1.) Change something innocuous.
        (Like adding a space in a file, where you know it will be ignored.)
  2.) Then check-in and push the branch from your local machine.
        (Preferably from wherever the last check-in to the deleted branch was made).
To my surprise it worked without issue and the branch was restored like nothing had happened.

Side Note:
Odd that in order to merge code I have to get permission from others,
but deleting code requires no oversight (at least that's how our org was set up).
Still totally my fault for mixing up my branches.
Creating branches for every single little issue we work on is new to me and a pain, but I get why.
My coworker says she waits until we go to release before cleaning up any dead branches.
Lesson learned.

Comments

0

My branch was gone (git branch --remote mentioned in other posts did not work for me) but I was trying to restore from my last pull request. I did the following which worked for me, recreating the branch with the same name from the point of the last commit.

  1. Within BitBucket, get the branch name and the hash for the last commit in the pull request

  2. git checkout -b <branch_name> <last_hash> git push origin <branch_name> 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.