将git存储库从GitLab传输到GitHub - 我们可以,如何和陷阱(如果有的话)?

时间:2014-03-08 06:13:13

标签: git github transfer gitlab repository

如果需要,可以将存储库从GitLab传输到GitHub。如果是这样,我究竟能怎么做呢?

此外,在这样做之前是否有任何陷阱或我需要记住的预防措施,因为我可能决定最终将它们移动到GitHub(因为它有更多的功能,我可能会找到方便对于我的项目)。

10 个答案:

答案 0 :(得分:133)

您可以转移它们(只需将遥控器添加到GitHub仓库并推送它们)

  • 在GitHub上创建一个空的回购
  • git remote add github https://yourLogin@github.com/yourLogin/yourRepoName.git
  • git push --mirror github

历史将是一样的。

但是您将失去访问控制(GitLab中定义的团队在您的仓库中具有特定访问权限)

OP boddhisattva reports与GitHub回购的https网址存在问题:

The requested URL returned error: 403

您需要做的就是输入您的GitHub密码,但OP建议:

  

然后你可能需要以ssh方式推送它。您可以在此处详细了解如何操作。

请参阅“Pushing to Git returning Error Code 403 fatal: HTTP request failed”。

答案 1 :(得分:81)

导入存储库功能非常简单 登录github.com

在个人资料图片的一侧,您会看到+按钮,然后会有import repository的选项。 你会找到这样的页面。 http://sqlfiddle.com/#!9/272479/1 您的旧存储库的克隆URL是必需的,在您的情况下是gitlab repo url。 然后选择所有者,然后键入此仓库的名称,然后单击开始导入按钮。

答案 2 :(得分:6)

我遇到了相反的问题,最后由于公司政策的变化,公司必须为公司创建自己的bash shell脚本,将数百个repos从Github迁移到Gitlab。
该脚本使用Gitlab API远程创建一个repo,并将Github repo推入其中。 目前还没有README.md文件,但是文件很好 同样的事情可以按照我想象的方式完成。希望这可以帮助。
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh

答案 3 :(得分:1)

如果要迁移包括Wiki以及所有问题和里程碑的存储库,可以使用node-gitlab-2-githubGitLab to GitHub migration

答案 4 :(得分:1)

使用默认的 Github 存储库导入是可能的, 但只需确保在 Gitlab 中未启用双因素身份验证。

谢谢

答案 5 :(得分:1)

您可以使用以下命令:

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

如果出现错误,您可以尝试使用 -f 命令强制推送,输入如下:

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

这将是 GitLab 推荐的在 GitHub 上导入现有存储库的路径,但是,如果您将 <yourRepository.git> 链接更改为 GitHub 上的存储库链接,则有可能走另一条路,从 GitLab 转移到GitHub。在实践中,您创建了一个新的起源并强制推动了一切。

答案 6 :(得分:1)

一种简单的解决方案是在您的本地存储库中再添加一个远程 URL。

步骤:

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

示例:

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

答案 7 :(得分:0)

如果在GitLab上启用了MFA,则应转到存储库设置/存储库->部署密钥并创建一个,然后在GitHub上导入存储库时将其用作登录名

答案 8 :(得分:0)

对于仍在寻找更简单方法将回购协议从Gitlab转移到Github的人,同时保留所有历史记录的人。

第1步。登录github,创建一个与您要转移的存储库名称完全相同的私人存储库。

步骤2。在“从命令中推送现有存储库”下,复制新存储库的链接,它看起来像这样:git@github.com:your-name / name-of-repo.git

第3步。打开本地项目,然后查找文件夹“ .git”,通常这是一个隐藏文件夹。在.git文件夹中,打开config

配置文件将包含以下内容:

[远程“来源”]

url = git@github.com:您的名称/repo.git名称

获取= + refs / heads /:refs / remotes / origin /

在[远程“来源”]下,将URL更改为您在github上复制的URL

步骤4。在终端中打开您的项目文件夹并运行:git push --all这会将您的代码以及所有提交历史记录推送到github。

第5步。为确保一切正常,进行更改,提交,推送和新提交应出现在新创建的github存储库上。

步骤6。作为最后一步,您现在可以存档gitlab存储库或将其设置为只读。

答案 9 :(得分:0)

您可以按照以下 2 个步骤简单地将您的 GitLab 项目连同包含的历史记录和提交转移到 GitHub:

<块引用>
  1. 单击 Github 个人资料右侧的设置,然后选择导入存储库。然后在旧的存储库 URL 上粘贴 Gitlab 您要传输的存储库链接。按照附加的屏幕截图 Steps to import git repository

  2. 点击导入,然后在验证登录凭据后等待一分钟,最后你完成了。检查您的 GitHub 存储库以查看更改。