将Git存储库从GitHub分叉到GitLab

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

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

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

那可能吗? 怎么样?

我已经阅读了这篇文章:[https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/]

无论如何,我不确定该怎么办。

  • 我是否应该以某种方式在GitHub的项目的GitLab上创建一个fork?
  • 还是应该在GitHub的项目的GitLab上创建镜像?
  • 还是应该在GitLab上创建一个镜像,然后分叉该镜像?
  • 还是我应该做一些完全不同的事情?

什么是正确的方法。

谢谢。

更新

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

[HTTPS://docs.git lab.com/哦哦/workflow/repository_mirroring.HTML]

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

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

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

Cimlman asked 2020-02-29T11:33:08Z
3个解决方案
66 votes

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

然后使用以下命令将GitHub项目添加为“上游”远程:

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

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

git pull upstream master

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

git push origin master

如果您不想手动拉上游/推原点,则GitLab可在Settings => Repository => Mirroring Repository中提供镜像功能。

CJxD answered 2020-02-29T11:34:12Z
5 votes

仅限浏览器的方式:

  1. 在Gitlab中创建一个新项目(只需一个有名称的空项目即可)
  2. 转到设置->存储库
  3. 在“镜像存储库”下输入GitHub URL
  4. 确保“镜像方向”为“拉”
  5. 按“镜像存储库”按钮
  6. 按出现的条目旁边的同步图标
aksh1618 answered 2020-02-29T11:34:58Z
-1 votes

可以分叉私有github存储库。

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

^我刚刚在github上的私人仓库中完成了此操作,并成功导入了该文件(包括inc分支等)。 导入的项目会自动保密;)

Daithí answered 2020-02-29T11:35:44Z
translate from https://stackoverflow.com:/questions/50973048/forking-git-repository-from-github-to-gitlab