将git仓库从GitLab转移到GitHub-我们可以,如何进行陷阱和陷阱(如果有的话)?


204

如果需要,可以将一个存储库从GitLab转移到GitHub。如果是这样,我该怎么做呢?

此外,这样做是否有任何陷阱或需要注意的预防措施,因为我可能最终决定将其移至GitHub(因为它具有更多功能,目前我可能会为我的项目找到方便)。

Answers:


210

您可以传输它们(只需将远程添加到GitHub存储库并通过推送它们)

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

历史将是相同的。

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

如果您在GitHub存储库的https URL上遇到任何问题,请执行以下操作:

The requested URL returned an error: 403

您所需要做的就是输入您的GitHub密码,但是操作提示:

然后,您可能需要以ssh方式推送它。您可以在此处阅读有关如何操作的更多信息。

请参阅“ 推送到Git返回错误代码403致命:HTTP请求失败 ”。


谢谢冯(Von)-您的答案对我有用 希望没事。
boddhisattva 2014年

@boddhisattva可以,但是我看到您的编辑被拒绝了。我自己在答案中添加了它。
VonC 2014年

5
对导入问题和标签有何评论?可以通过拉入方式导入除代码以外的任何代码吗?谢谢。

@YakovK我不知道考虑PR和问题的自动过程。至少,GitHub中的PR是分支(请参阅stackoverflow.com/a/30542987/6309),因此可以将其导入。
VonC

1
@kiki它会推送所有本地分支,但是如果您的本地仓库本身就是一个克隆,它将只有master作为其默认的本地签出分支。在使用之前,必须先在其他本地分支的对等远程跟踪分支之后创建它们push --mirrorstackoverflow.com/a/18911322/6309。另请参见在stackoverflow.com/a/24099141/6309(最后一句话)中提及的替代方法
VonC

149

通过导入存储库功能,登录github.com

在个人资料图片的侧面,您会发现+单击按钮,然后会有选项import repository。您会发现这样的页面。 在此处输入图片说明 您的旧存储库的克隆URL是必需的,在您的情况下为gitlab repo url。然后选择所有者,然后为此仓库输入名称,然后单击以开始导入按钮。


33
GitHub添加了它非常方便。但是,如果它是位于防火墙后面的内部GitLab,则它将不起作用,这代表了GitLab的大量用例。
abalter

7
对于使用导入选项的其他任何人,请快速注意一下。我必须在GitLab上禁用MFA才能起作用。
D日

2
这很好。比接受的答案好得多
LnxSlck

如果我要导入分支怎么办?
coderInrRain

1
导入的存储库不必一定要现在公开,因为github使得免费添加了私有存储库成为可能。
Shrey Garg,


7

我遇到了相反的问题,由于公司政策的变化,最终不得不为公司创建自己的bash shell脚本,以将数百个回购协议从Github迁移到Gitlab。
该脚本使用Gitlab API远程创建存储库,并将Github存储库推送到其中。尚无README.md文件,但sh有据可查。
可以按照我想象的相反方式完成同一件事。希望这会有所帮助。
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.