我可以从GitLab.com向GitHub提交拉取请求吗?

时间:2016-06-07 07:09:52

标签: github gitlab pull-request

我们的大多数工作都发生在GitLab.com上(即不是本地GitLab安装)。如果上游repo驻留在GitHub上,有没有办法向上游提交拉取请求? (如果以特定方式分配上游回购是解决方案的一部分,那没关系。)

5 个答案:

答案 0 :(得分:21)

没有。正确的工作流程是将GitHub上的上游项目分支到您自己的命名空间。然后使用fork作为GitLab存储库的上游而不是fork的源。

然后从GitLab存储库中将更改推送到fork(上游)。然后在GitHub上,您可以从GitHub fork向原点提交拉取请求。

答案 1 :(得分:2)

这是很奇怪,但这就是我的做法!

我在Github上有一个存储库,但是我想使用Gitlab CI,所以我将存储库从 Github 镜像到了 Gitlab ,然后我配置了CI等...我在网上四处看看,发现使用Gitlab Enterprise,您the feature可以将更改从 GitLab 推送到外部存储库,但是由于我没有我没有为Gitlab Enterprise付费,我做了以下事情:

由于我们使用的是GIT,并且我们是优秀的程序员,所以要努力使优秀的程序员发挥作用,所以:

我刚刚编辑了GIT URL

怎么样?

  • 克隆您的存储库
  • 转到您的项目...
  • 导航到.git > config,您应该有类似的东西!

    .git/config file

URL Github 更改为 Gitlab (两种服务中我具有相同的用户名和项目名称,因此,我只更改了网址)。

然后使用 Gitlab URL:

$ git pull origin

由于远程URL已更改,因此您应该从 Gitlab 获取更改。

  • 再次将您的远程URL更改回 Github

然后推送您的更改

$ git pusn origin

您应该完成!希望它对您有用,对我也有用!

答案 2 :(得分:1)

不,使用GitHub无法做到这一点。

相反,您需要:

  1. 创建GitHub存储库
  2. 添加GitHub远程:
    • SSH:git remote add gh git@github.com:org/repo.git
    • HTTPS:git remote add gh https://github.com/org/repogit
  3. git push gh master
  4. 从GitHub存储库创建拉取请求。

答案 3 :(得分:0)

不,MS github不允许这样做,而且可能永远不会。

当然,上游维护者可以将您的fork添加为远程存储,并从中进行分拣,但这比处理pull-requests要复杂得多。因此,很少有维护者愿意这样做。

另一种方式:所有者在gitlab上镜像他的项目。然后gitlab用户可以将其派生并提交补丁。与仅在MS github上处理单个项目相比,这还需要更多的工作,并且可能会更加令人困惑。

答案 4 :(得分:0)

扩展Kai和christianbundy的答案,我认为最简单的方法是

  1. 在Github上,将存储库派生到您自己的名称空间中。
  2. 在Gitlab中,使用Github import实用程序或仅通过现有回购文件创建的项目即可导入项目。
  3. 在您的本地存储库中,设置所有三个远程设备……我们将它们称为origin,fork和gitlab。假设来源已经是您的远程用户: git remote add fork my/forked/github/url git remote add gitlab my/gitlab/url
  4. 当您要进行更改时,请创建一个本地分支,并将gitlab remote设置为您的远程跟踪分支(继续对该分支进行更改,直到满意为止)。 git push -u gitlab my-dev-branch
  5. 完成开发后,将分支推送到分叉的仓库(在Github上)。 git push -u fork my-dev-branch
  6. 执行此操作时,在控制台输出中,应该有一个链接,用于从新分支中发出拉取请求。点击它。默认情况下,这应该创建一个针对原始仓库主分支的拉取请求。填写将您重定向到的页面,您应该已完成!