最近 GitHub 封禁中国用户的事情闹得沸沸扬扬,虽然官方发布的报道说中国用户被限制登录是因为配置错误导致,已经撤回了更新,中国用户已经可以正常使用。但是这就像横在国内开发者和企业头上的“达摩克利斯之剑”。为了避免 GitHub 不可用而带来的影响,国内开发者和企业可以有两种应对之策:完全迁移到极狐GitLab 和将 GitHub 仓库镜像到极狐GitLab。

关于从 GitHub 到极狐GitLab 的迁移指南,可以参考过往的文章 GitHub 到极狐GitLab 的迁移指南。本文详细解读将 GitHub 镜像到极狐GitLab 的方法,具体步骤为:

  • 创建 GitHub 个人访问令牌
  • 导入 GitHub 项目
  • 在极狐GitLab 上添加拉取镜像

极狐GitLab 镜像功能

极狐GitLab 仓库镜像功能是将仓库镜像到外部来源或将外部来源镜像为极狐GitLab 仓库。你可以选择哪个仓库作为源。分支、标签和提交会自动同步。镜像的方法有:

  • 推送:将仓库从极狐GitLab 镜像到其他位置。
  • 拉取:从其他位置镜像仓库。适用于专业版和旗舰版版本。
  • 双向镜像也可用,但可能会导致冲突。

要想将 GitHub 仓库镜像到极狐GitLab,选择 拉取 方式即可。关于极狐GitLab 仓库镜像功能可以查看官方文档

从 GitHub 镜像到极狐GitLab

将极狐GitLab 作为 GitHub 仓库的镜像点,首先需要将 GitHub 仓库导入极狐GitLab,然后配置好镜像,就能够实现 GitHub 仓库的变更被定期拉取到极狐GitLab。

创建 GitHub 个人访问令牌

从 GitHub 导入项目需要 GitHub 个人访问令牌。在 GitHub 上,点击右上角头像 > Settings > Developer Settings > Personal access tokens,选择 Token (classic) ,点击 Generate new token(classic):

file

在出现的页面中,选择合适的范围即可。必选的范围是 repo,这能够用于显示可供导入的公共和私有仓库列表;建议的范围是 read:org,这用于从 GitHub 仓库导入协作者,或者你的项目具有 Git LFS 文件。

将 GitHub 仓库导入极狐GitLab

选定你想要镜像的 GitHub 仓库。在极狐GitLab 上先导入此项目。在极狐GitLab 页面上选择 新建项目 :

file

选择 导入项目 :

file

选择 GitHub :

Screenshot 2025-04-15 at 09.57.23.png

输入前面生成的个人访问令牌,点击 验证,验证通过就会列出 GitHub 上可以导入的项目:

file

选择要导入的项目,选择需要导入的 GitLab 目标路径,点击右侧的 导入,项目就开始导入了,可以看到导入的进度和条目:

file

导入完成后,即可在极狐GitLab 对应的目标路径上看到对应的项目:

file

配置拉取镜像

前面的步骤只是完成了 GitHub 仓库的导入,但是 GitHub 上仓库的变更却没办法更新到极狐GitLab 这边。随着时间的变更,两边的差距会越来越大。为了解决此问题,可以在极狐GitLab 上,将 GitHub 的项目设置为仓库镜像,这样,通过定期从 GitHub 项目拉取变更并同步到极狐GitLab 项目上来保持两边项目的同步。

在极狐GitLab 上选择从 GitHub 导入的项目,选择 设置 > 仓库 > 镜像仓库

file

点击 添加新的,将 GitHub 上的项目地址作为 Git 仓库 URL,然后选择镜像方向,由于是从 GitHub 同步变更到极狐GitLab,因此镜像方向为 拉取 ,验证方式为用户名和密码,输入 GitHub 的用户名和密码即可,然后根据需要选择镜像的分支,最后选择 镜像仓库 :

file

GitHub 上变更的默认拉取时间间隔为 5 分钟,如果是私有化部署实例用户,可以根据自己需要进行调整。方式可以参考拉取镜像间隔官方文档)。

测试验证

为了验证这种拉取镜像的方式,可以在 GitHub 仓库上做一个变更,比如创建一个分支,看看是否能同步到极狐GitLab。

可以看到 GitHub 仓库上的默认分支只有 main:

file

手动创建两个分支 gitlab和 gitlab-mirror:

file

在对应的极狐GitLab 仓库上可以看到也只有一个 main分支,点击立即更新按钮:

file

可以在极狐GitLab 仓库的 项目 > 代码 > 分支 中看到对应的分支都同步了过来:

file


极狐GitLab
69 声望37 粉丝

极狐(GitLab) 以“核心开放”为原则,面向中国市场,提供开箱即用的开放式一体化安全DevOps平台——极狐GitLab。通过业界领先的优先级管理、安全、风险和合规性功能,实现产品、开发、QA、安全和运维团队间的高效协同...