当前位置: 首页 > 知识库问答 >
问题:

将Git存储库从GitHub分叉到GitLab

云镜
2023-03-14

假设我想对其他人的项目实施修复。该项目位于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上创建一个分叉
  • 还是应该在GitHub的GitLab上创建项目的镜像
  • 或者我应该在GitLab上创建一个镜像,然后将镜像分叉
  • 或者我应该做些完全不同的事情

正确的做法是什么。

谢谢

更新

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

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

这就是我目前所做的:

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

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

共有3个答案

樊桐
2023-03-14

您可以只使用web界面导入任何公共可用的GitHub存储库,而无需分叉:

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

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

端木野
2023-03-14

浏览器唯一方式:

  1. 在Gitlab中创建一个新项目(只需一个有名称的空项目即可)
沃皓轩
2023-03-14

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

然后将GitHub项目添加为“上游”远程服务器,并使用:

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

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

git pull upstream master

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

git push origin master

如果您不想手动拉入上游/推送原点,GitLab在设置中提供了镜像功能=

 类似资料:
  • 将包含所有分支和完整历史的Git存储库从Bitbucket移动到GitHub的最佳方式是什么? 我需要使用脚本或命令列表吗?

  • 假设我有一个Github存储库,名为。在该存储库中,我有一个名为的分支。在分支中,我之前添加了一个文件。现在如果我想先添加一个文件到分支,或者想要更新文件,哪些Git命令用于此操作?

  • 本文向大家介绍Git部分存储,包括了Git部分存储的使用技巧和注意事项,需要的朋友参考一下 示例 如果您只想存储工作集中的一些差异,则可以使用部分存储。 然后以交互方式选择要存储的块。 从2.13.0版开始,您还可以避免使用交互模式,并使用新的push关键字使用pathspec创建部分存储。            

  • 我有本地工作副本的SourceTree。所有操作都很好,我可以通过SourceTree进行简单的提取、推拉等操作。我只需要做一个在SourceTree中不存在的力推。 我打开终端做git推-f 我不确定什么是问题。

  • 我从git和GitHub开始,我在GitHub上看了一个项目。我无意中点了一下叉子。现在它对我来说是一个新项目。 null 我想删除它。到目前为止,我只是在研究代码,并不真的需要叉子。