将 Git 存储库从 GitHub 分叉到 GitLab

Forking Git repository from GitHub to GitLab

假设我想对其他人的项目实施修复。该项目位于 GitHub.

我可以在 GitHub 上创建一个分支并实施修复。

但是,我想在 GitLab 而不是 GitHub 上创建我的分支。

这可能吗?怎么样?

我读过这篇文章: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/

无论如何,我不确定我的情况应该怎么做。

正确的做法是什么。

谢谢。

更新

GitLab 上的存储库镜像可能没有意义。我可以在 GitLab 上创建我的 GitHub 存储库的镜像,但我无法创建其他人存储库的镜像。

https://docs.gitlab.com/ee/workflow/repository_mirroring.html

这是我到目前为止所做的:

我已将原始 GitHub 项目克隆到我的本地机器上。我已将修复提交到本地存储库中的一个新分支。我在 GitLab 上创建了一个空项目。我已将本地存储库中的 origin 设置为 GitLab 上的那个空项目,并将两个分支都推送到 GitLab。我已将本地存储库的上游设置为 GitHub 存储库。

当我想从原始 GitHub 存储库获取新提交到 GitLab 上的存储库(即同步存储库)时,我可以使用我的本地存储库作为中间步骤来执行此操作。但是,GitHub 上的回购和 GitLab 上的回购之间没有直接联系。我的设置正确吗?如果我在 GitHub 上分叉,有什么不同吗?

分叉私有 github 存储库是可能的。

  1. 点击新建项目
  2. Select 导入
  3. Select github
  4. OAuth2 用于验证和自动创建 gitlab 应用程序
  5. Select 要分叉的项目

^ 我刚刚在 github 上使用私人仓库完成了此操作,已成功导入(包括分支机构等)。导入的项目自动保密 ;)

如果您只想跟踪更改,请先在 GitLab(或您可能正在使用的任何其他软件)中创建一个空存储库,然后将其克隆到您的计算机。

然后将 GitHub 项目添加为“upstream”远程:

git remote add upstream https://github.com/user/repo

现在,如果有任何更改,您可以从上游获取和拉取。 (如果您有访问权限,也可以推送或合并到它。)

git pull upstream master

最后,推回你自己的 GitLab 仓库:

git push origin master

如果你不想手动拉取upstream/push origin,GitLab在Settings => Repository => Mirroring repositories中提供了镜像功能。

仅限浏览器的方式:

  1. 在Gitlab中创建一个新项目(只要一个空的项目有名字就可以)
  2. 转到设置 -> 存储库
  3. 在'Mirroring repositories'
  4. 下输入GitHubURL
  5. 确保 'Mirror direction' 是 'Pull'
  6. 按'Mirror repository'按钮
  7. 按出现的条目旁边的同步图标

您可以只使用 Web 界面导入任何 public 可用的 GitHub 存储库,而不是分叉:

  1. 从您的 Git 实验室仪表板单击 新建项目
  2. 切换到导入项目选项卡
  3. 通过 URL 按钮单击 Repo
  4. 填写“Git 存储库 URL”和其余项目字段
  5. 单击创建项目开始导入过程
  6. 完成后,您将被重定向到新创建的项目

最近使用了此技术,即使没有 GitHub 帐户,它也适用于任何 public 存储库。有关信息来源,请参阅此 GitLab docs 页面。