导入Gitlab项目到Github

3
我最近创建了一个Gitlab账户,想将其用作个人作品集。我已经创建了一个Github Page并发布了一些内容。现在的问题是,我正在尝试将我在Gitlab上制作的所有项目导入到我的Github账户中。我在Google和论坛上搜索过,有些人建议我需要生成令牌,我尝试了但没有成功。
我曾试图通过在我的个人资料附近使用“+”按钮将单个Gitlab存储库直接导入到我的Github存储库中。但是它没有成功,显示消息“未检测到https://git.osl.frl/JVeenswijk/pfSense的源存储库,请检查URL并重试”(是的,该项目设置为公共),因此我认为从Gitlab导入可能存在问题。
所以我尝试使用令牌、导入甚至通过Github桌面版,但这些方法都无法奏效。我觉得很奇怪,Github和Gitlab之间连接如此困难,从我的角度来看,它们几乎具有相同的功能,但不同的特点。
现在的问题是:
  • 有没有办法将我的Gitlab项目导入Github账户?
  • 我能否在Github页面上创建一个链接,如果有人点击该链接(只读),不需要登录就可以查看Gitlab存储库的内容?

1
请查看此链接:https://dev59.com/3WEh5IYBdhLWcg3wjUKJ - eerFun
2
我认为从Gitlab导入可能无法正常工作,GitHub也可能(我认为是正确的)拒绝连接到具有无效TLS证书的站点。当我尝试通过上面提供的URL进行克隆时,会出现以下情况:“fatal: unable to access 'https://git.osl.frl/JVeenswijk/pfSense/': SSL certificate problem: certificate has expired”。请设置一个正确的证书(Let's Encrypt可以免费帮助您),然后再试一次。 - Chris
或者,尝试使用SSH URL,例如git@git.osl.frl:JVeenswijk/pfSense(不过您可能会遇到SSH密钥指纹问题)。 - Chris
好的,我会尝试这些选项,谢谢你的帮助! - Jamie Veenswijk
2个回答

12

我刚刚成功地将代码库从GitLab迁移到GitHub。

GitLab上的代码库是私有的,这意味着GitHub导入工具无法使用,因此我按照下面的链接进行了操作,并且它起作用了。

GitHub官方网页上的说明

步骤

  1. 在GitHub上创建一个新的代码库。您将把外部Git代码库导入到这个新代码库中。
  2. 在命令行上,使用外部克隆URL创建一个“裸”的克隆版本。这会创建数据的完整副本,但不包括用于编辑文件的工作目录,并确保所有旧数据都被干净、新鲜地导出。
  3. $ git clone --bare https://external-host.com/extuser/repo.git
    # Makes a bare clone of the external repository in a local directory
    
    使用"mirror"选项将本地克隆的存储库推送到GitHub,该选项可以确保所有引用(例如分支和标签)都被复制到导入的存储库中。
    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    # Pushes the mirror to the new GitHub repository
    
    4. 删除临时本地仓库。
    $ cd ..
    $ rm -rf repo.git
    

4

你可以做到。这是gitlab的一个功能,可以镜像另一个仓库。

进行此操作的选项位于项目页面 -> 设置 -> 存储库 -> 镜像存储库。此选项允许您同时进行以下两个选项:从远程存储库拉取和推送到它。

对于您所要求的操作,这里有gitlab的帮助文档:

要从GitLab设置一个到GitHub的镜像,请按照以下步骤进行:

Create a GitHub personal access token with the public_repo box checked.
Fill in the Git repository URL field, with the personal access token instead of a password.
For example: https://<GitHubUsername>:<GitHubPersonalAccessToken>@github.com/group/project.git.
Click the Mirror repository button.
Wait, or click the update button.

请查看GitLab的帮助文档(https://gitlab.com/help/workflow/repository_mirroring)获取更多关于代码仓库镜像的信息。

在 Stack Overflow 上,如果你发现答案是正确的,最好将其标记为被接受的答案。如果一个答案有帮助,就给它投票。这样做,其他用户就可以查看问题的更好答案了。 - Sakura Kinomoto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接