Seamlessly Migrating Your Git Repository from Bitbucket to GitHub: A Step-by-Step Guide
Xin (David) Zhao
Computational Biologist | Microbial Epidemiology | Data-Driven Public Health
Navigating the world of version control often involves managing multiple repositories across different platforms. Recently, I faced a common scenario: after cloning a repository from Bitbucket to my local machine, I needed to set up a new remote repository on GitHub and link it to my existing local repo.
If you've ever wondered how to seamlessly connect a local repository with a new GitHub remote, this guide will walk you through the process step by step.
1. Create a New Repository on GitHub
2. Link Your Local Repository to the New GitHub Repository
Open your terminal and navigate to your local repository's directory.
cd /path/to/your/local/repository
3. Add the New GitHub Remote
You can now add the new GitHub repository as a remote.
You can name it something like github to differentiate it from your Bitbucket remote (usually named origin).
git remote add github https://github.com/your-username/your-repo-name.git
Replace your-username with your GitHub username and your-repo-name with the name of your new repository
4. Push Your Local Repository to GitHub
Push your local repository to the new remote on GitHub.
领英推荐
git push -u github master
5. Verify the Remotes
To make sure that the new GitHub repository is linked correctly, you can check the list of remotes.
git remote -v
This should show both the original Bitbucket remote and the new GitHub remote.
Now, your local repository is linked to both the original Bitbucket remote and the new GitHub remote. You can push and pull changes to and from either repository as needed.
Bonus: Set GitHub as an Upstream (Optional)
If you want to set GitHub as the default upstream remote for future pushes, set the upstream for your main branch.
Replace main with the correct branch name if necessary.
git branch --set-upstream-to=github/main main
To make sure everything is set up correctly, recheck the remotes.
git remote -v