Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to migrate from Bitbucket server to cloud without outside access to existing Bitbucket server?

Baztheman March 3, 2021

Hi,

I am currently using Bitbucket server v6.3.2 and planning to migrate to Bitbucket cloud. However, my current Bitbucket server is behind the firewall. I only see documents on how to import from an externally accessible Bitbucket server. Is there any way that I can clone the repo from the current Bitbucket server to my local mac laptop, then upload/import the code with all history into the new repo in the Bitbucket cloud? How? Any step-by-step instruction?

Thank you.

Barry

2 answers

1 accepted

2 votes
Answer accepted
Monique vdB
Community Manager
Community Managers are Atlassian Team members who specifically run and moderate Atlassian communities. Feel free to say hello!
March 3, 2021

from @Mikael Sandberg who is having issues trying to post this reply: 

 

Yes, you can import an existing repository. Here are the steps:
  1. Clone your existing repositories
  2. In Bitbucket Cloud, create a new empty repository for each of the ones you want to import.
  3. Point your local repository to Bitbucket Cloud by changing the URL it uses.
  4. Push everything to Bitbucket Cloud.
The only thing that you cannot import by doing it this way is any Bitbucket specific things, like existing pull requests, permissions and hooks that you currently have. This will only import the repository.
For more information, have a look at this link for the exact commands you need to run: https://confluence.atlassian.com/bitbucket/push-versioned-code-to-an-empty-repository-877177145.html
Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 3, 2021
Baztheman March 3, 2021

Monique, thank you for your quick response. Yes, I found that link also. It is not easy to find tho. 

So, I followed the instruction but got the following error with a brand new repo. How can I resolve it? Thanks. 

 

mp-ml-081:master bonnie$ git remote set-url origin https://scm@bitbucket.org/scm/commons.git

mp-ml-081:master bonnie$ git push -u origin -all

error: did you mean `--all` (with two dashes ?)

mp-ml-081:master bonnie$ git push -u origin --all

Password for 'https://scm@bitbucket.org':

To https://bitbucket.org/pscm/commons.git

! [rejected]        master -> master (fetch first)

error: failed to push some refs to 'https://scm@bitbucket.org/scm/commons.git'

hint: Updates were rejected because the remote contains work that you do

hint: not have locally. This is usually caused by another repository pushing

hint: to the same ref. You may want to first integrate the remote changes

hint: (e.g., 'git pull ...') before pushing again.

hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 3, 2021

Hi Barry,

When you created the repository in Bitbucket, did you choose not to add a readme file in it? The error you get indicates that the remote repository, in Bitbucket, isn’t empty.

Baztheman March 3, 2021

I used "git push -u origin --all --force" and imported the repo. However, I do not seem to import branches and tags info. What am I missing?

Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 3, 2021

Okay, so try this. Delete the new repository that you just imported to and creat it again, make sure that you do not add the readme file at the end. When you clone the repository on your Bitbucket server, use git clone —mirror, this will create a bare clone which can only be used for backup. Then when you push it to Bitbucket Cloud, make sure you use the —mirror again in the gut push command. This will recreate all the branches and tags.

Baztheman March 3, 2021

Mikael,

1) I think the initial issue is caused by .gitignore file being created. Not the Readme file (This may cause it too but I did not choose to create Readme file).

2) "git clone --mirror..." with cloning then using "git push -u origin --mirror" seem to import all the branch and tags information. 

Thank you.

Barry

0 votes
Mikael Sandberg
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 4, 2021

Testing to post an answer here

Baztheman March 4, 2021

test :)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events