从 GitHub 到 GitLab 的分支 Git 存储库

假设我想对其他人的项目实现一个修复程序,该项目位于 GitHub 上。

我可以在 GitHub 上创建一个 fork 并实现修复。

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

这可能吗,怎么可能?

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

无论如何,我不知道我该怎么办。

  • 我是否应该从 GitHub 创建一个项目的 GitLab 分支?
  • 或者我应该在 GitLab 上从 GitHub 创建项目的镜像?
  • 或者我应该在 GitLab 上创建一个镜像,然后叉开镜像?
  • 或者我应该做一些完全不同的事情?

正确的方法是什么。

谢谢。

更新

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

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

这就是我迄今为止所做的:

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

当我想要从原来的 GitHub 存储库获得新的提交到 GitLab 上的存储库(即同步存储库)时,我可以使用我的本地 repo 作为中间步骤。然而,GitHub 上的回购与 GitLab 上的回购之间没有直接联系。我的设置正确吗?我在 GitHub 上做个叉子有什么区别吗?

94114 次浏览

建立一个私有的 github 存储库是可能的。

  1. 点击新项目
  2. 选择 Import
  3. 选择 github
  4. OAuth2用于验证和自动创建 gitlab 应用程序
  5. 选择 project to fork

^ 我刚刚在 github 上使用了一个私有回购,成功导入(包括分支等)。导入的项目会自动保密;)

如果您只是想跟踪更改,那么首先在 GitLab 中创建一个空存储库(或者您可能正在使用的任何其他存储库) ,并将其克隆到您的计算机上。

然后添加 GitHub 项目作为“ 逆流而上”远程控制:

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

现在,如果有任何变化,您可以从上游进行提取和拉取。(如果您拥有访问权限,也可以向其推送或合并。)

git pull upstream master

最后,返回到您自己的 GitLab 存储库:

git push origin master

如果您不想手动提取上游/推送源,GitLab 在 Settings = > Repository = > Mirroring 仓库中提供了镜像功能。

仅通过浏览器的方式:

  1. 在 Gitlab 创建一个新项目(只需要一个带名称的空项目就可以了)
  2. 进入设置-> 储存库
  3. 在“镜像存储库”下输入 GitHub URL
  4. 确保“镜子方向”是“拉”
  5. 按“镜像存储库”按钮
  6. 按下出现的条目旁边的同步图标

你可以只使用 web 界面导入任何公开可用的 GitHub 存储库,而不是 forking:

  1. 在 GitLab 仪表板上单击 新项目
  2. 切换到 进口项目选项卡
  3. 点击 网址回购按钮
  4. 填写“ Git 存储库 URL”和其余的项目字段
  5. 单击 创建项目开始导入过程
  6. 一旦完成,您将被重定向到新创建的项目

最近使用了这种技术,即使没有 GitHub 帐户,它也可以在任何公共存储库上运行。请参阅这个 GitLab 文档页面的信息来源。