Transfer git repositories from GitLab to GitHub - can we, how to and pitfalls (if any)?

GitGithubTransferGitlabRepository

Git Problem Overview


Can one transfer repositories from GitLab to GitHub if the need be. If so, how exactly can I go about doing the same?

Also, are there any pitfalls in doing so or precautionary measures that I need to keep in mind before doing so given that I may decide to eventually move them to GitHub (as it has more features at the moment that I might find handy for my project).

Git Solutions


Solution 1 - Git

You can transfer those (simply by adding a remote to a GitHub repo and by pushing them)

  • create an empty repo on GitHub
  • git remote add github https://[email protected]/yourLogin/yourRepoName.git
  • git push --mirror github

The history will be the same.

But you will loose the access control (teams defined in GitLab with specific access rights on your repo)

If you facing any issue with the https URL of the GitHub repo:

The requested URL returned an error: 403

All you need to do is to enter your GitHub password, but the OP suggests:

> Then you might need to push it the ssh way. You can read more on how to do it here.

See "Pushing to Git returning Error Code 403 fatal: HTTP request failed".


Note that mike also adds in the comments:

> GitLab can also be set to push mirror to downstream repositories, and there are specific instructions for push mirroring to GitHub.
This can use a GitHub Personal Access Token and also be set to periodically push.
You might use this option to share on GitHub, but keep your main development activity in your GitLab instance.

Solution 2 - Git

This is very easy by import repository feature Login to github.com,

Side of profile picture you will find + button click on that then there will be option to import repository. you will find page like this. enter image description here Your old repository’s clone URL is required which is gitlab repo url in your case. then select Owner and then type name for this repo and click to begin import button.

Solution 3 - Git

If you want to migrate the repo including the wiki and all issues and milestones, you can use node-gitlab-2-github and GitLab to GitHub migration

Solution 4 - Git

For anyone still looking for a simpler method to transfer repos from Gitlab to Github while preserving all history.

Step 1. Login to Github, create a private repo with the exact same name as the repo you would like to transfer.

Step 2. Under "push an existing repository from the command" copy the link of the new repo, it will look something like this:

git@github.com:your-name/name-of-repo.git

Step 3. Open up your local project and look for the folder .git typically this will be a hidden folder. Inside the .git folder open up config.

The config file will contain something like:

[remote "origin"]
url = git@github.com:your-name/name-of-repo.git
fetch = +refs/heads/:refs/remotes/origin/

Under [remote "origin"], change the URL to the one that you copied on Github.

Step 4. Open your project folder in the terminal and run: git push --all. This will push your code to Github as well as all the commit history.

Step 5. To make sure everything is working as expected, make changes, commit, push and new commits should appear on the newly created Github repo.

Step 6. As a last step, you can now archive your Gitlab repo or set it to read only.

Solution 5 - Git

You can use the following commands:

cd existing_repository
git remote rename origin old-origin
git remote add origin <yourRepository.git>
git push -u origin --all
git push -u origin --tags

If an error occurs, you can try to force the push using the -f command, type like this:

git push -u -f origin --all
git push -u -f origin --tags

This would be the path recommended by GitLab to import an existing repository on GitHub, however, if you change the <yourRepository.git> link to the repository link on GitHub it is possible to go the other way, transferring from GitLab to GitHub. In practice, you create a new origin and force a push of everything.

Solution 6 - Git

If you have MFA enabled on GitLab you should go to Repository Settings/Repository ->Deploy Keys and create one, then use it as login while importing repo on GitHub

Solution 7 - Git

With default Github repository import it is possible, but just make sure the two factor authentication is not enabled in Gitlab.

Thanks

Solution 8 - Git

You can simply transfer your GitLab project to GitHub with included histories and commits following these 2 steps:

> 1. Click setting on the right-hand side of your Github profile and select import repository. Then on the old repository URL paste the Gitlab > repository link you want to transfer. Follow the attached screenshot [Steps to import git repository ][2] > > > [2]: > https://i.stack.imgur.com/WPoMS.png > 2. Click on import then wait a minutes after verifying login credentials, Finally you're done. Check your GitHub Repository to see the changes.

Solution 9 - Git

One simple solution can be to add one more remote URL to your local repository.

Steps:

git remote add <name> <URL>
git push name 

Example:

git remote add github_origin https://github.com/...
git push github_origin

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionboddhisattvaView Question on Stackoverflow
Solution 1 - GitVonCView Answer on Stackoverflow
Solution 2 - GitmanojView Answer on Stackoverflow
Solution 3 - Git1u-View Answer on Stackoverflow
Solution 4 - GitLeon MatotaView Answer on Stackoverflow
Solution 5 - GitMaykon MeneghelView Answer on Stackoverflow
Solution 6 - GitAlex MokrushinView Answer on Stackoverflow
Solution 7 - GitShuvankar PaulView Answer on Stackoverflow
Solution 8 - GitGopal BogatiView Answer on Stackoverflow
Solution 9 - GitRajeet GoyalView Answer on Stackoverflow