将 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/
无论如何,我不确定我的情况应该怎么做。
- 我是否应该以某种方式在 GitHub 项目的 GitLab 上创建一个分支?
- 或者我应该在 GitLab 上为来自 GitHub 的项目创建一个镜像吗?
- 或者我应该在 GitLab 上创建一个镜像然后 fork 镜像?
- 或者我应该做一些完全不同的事情吗?
正确的做法是什么。
谢谢。
更新
GitLab 上的存储库镜像可能没有意义。我可以在 GitLab 上创建我的 GitHub 存储库的镜像,但我无法创建其他人存储库的镜像。
https://docs.gitlab.com/ee/workflow/repository_mirroring.html
这是我到目前为止所做的:
我已将原始 GitHub 项目克隆到我的本地机器上。我已将修复提交到本地存储库中的一个新分支。我在 GitLab 上创建了一个空项目。我已将本地存储库中的 origin 设置为 GitLab 上的那个空项目,并将两个分支都推送到 GitLab。我已将本地存储库的上游设置为 GitHub 存储库。
当我想从原始 GitHub 存储库获取新提交到 GitLab 上的存储库(即同步存储库)时,我可以使用我的本地存储库作为中间步骤来执行此操作。但是,GitHub 上的回购和 GitLab 上的回购之间没有直接联系。我的设置正确吗?如果我在 GitHub 上分叉,有什么不同吗?
分叉私有 github 存储库是可能的。
- 点击新建项目
- Select 导入
- Select github
- OAuth2 用于验证和自动创建 gitlab 应用程序
- 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中提供了镜像功能。
仅限浏览器的方式:
- 在Gitlab中创建一个新项目(只要一个空的项目有名字就可以)
- 转到设置 -> 存储库
- 在'Mirroring repositories'
下输入GitHubURL
- 确保 'Mirror direction' 是 'Pull'
- 按'Mirror repository'按钮
- 按出现的条目旁边的同步图标
您可以只使用 Web 界面导入任何 public 可用的 GitHub 存储库,而不是分叉:
- 从您的 Git 实验室仪表板单击 新建项目
- 切换到导入项目选项卡
- 通过 URL 按钮单击 Repo
- 填写“Git 存储库 URL”和其余项目字段
- 单击创建项目开始导入过程
- 完成后,您将被重定向到新创建的项目
最近使用了此技术,即使没有 GitHub 帐户,它也适用于任何 public 存储库。有关信息来源,请参阅此 GitLab docs 页面。
假设我想对其他人的项目实施修复。该项目位于 GitHub.
我可以在 GitHub 上创建一个分支并实施修复。
但是,我想在 GitLab 而不是 GitHub 上创建我的分支。
这可能吗?怎么样?
我读过这篇文章: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/
无论如何,我不确定我的情况应该怎么做。
- 我是否应该以某种方式在 GitHub 项目的 GitLab 上创建一个分支?
- 或者我应该在 GitLab 上为来自 GitHub 的项目创建一个镜像吗?
- 或者我应该在 GitLab 上创建一个镜像然后 fork 镜像?
- 或者我应该做一些完全不同的事情吗?
正确的做法是什么。
谢谢。
更新
GitLab 上的存储库镜像可能没有意义。我可以在 GitLab 上创建我的 GitHub 存储库的镜像,但我无法创建其他人存储库的镜像。
https://docs.gitlab.com/ee/workflow/repository_mirroring.html
这是我到目前为止所做的:
我已将原始 GitHub 项目克隆到我的本地机器上。我已将修复提交到本地存储库中的一个新分支。我在 GitLab 上创建了一个空项目。我已将本地存储库中的 origin 设置为 GitLab 上的那个空项目,并将两个分支都推送到 GitLab。我已将本地存储库的上游设置为 GitHub 存储库。
当我想从原始 GitHub 存储库获取新提交到 GitLab 上的存储库(即同步存储库)时,我可以使用我的本地存储库作为中间步骤来执行此操作。但是,GitHub 上的回购和 GitLab 上的回购之间没有直接联系。我的设置正确吗?如果我在 GitHub 上分叉,有什么不同吗?
分叉私有 github 存储库是可能的。
- 点击新建项目
- Select 导入
- Select github
- OAuth2 用于验证和自动创建 gitlab 应用程序
- 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中提供了镜像功能。
仅限浏览器的方式:
- 在Gitlab中创建一个新项目(只要一个空的项目有名字就可以)
- 转到设置 -> 存储库
- 在'Mirroring repositories' 下输入GitHubURL
- 确保 'Mirror direction' 是 'Pull'
- 按'Mirror repository'按钮
- 按出现的条目旁边的同步图标
您可以只使用 Web 界面导入任何 public 可用的 GitHub 存储库,而不是分叉:
- 从您的 Git 实验室仪表板单击 新建项目
- 切换到导入项目选项卡
- 通过 URL 按钮单击 Repo
- 填写“Git 存储库 URL”和其余项目字段
- 单击创建项目开始导入过程
- 完成后,您将被重定向到新创建的项目
最近使用了此技术,即使没有 GitHub 帐户,它也适用于任何 public 存储库。有关信息来源,请参阅此 GitLab docs 页面。