我们的大多数工作都发生在GitLab.com上(即不是本地GitLab安装)。如果上游repo驻留在GitHub上,有没有办法向上游提交拉取请求? (如果以特定方式分配上游回购是解决方案的一部分,那没关系。)
答案 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
怎么样?
将 URL 从 Github 更改为 Gitlab (两种服务中我具有相同的用户名和项目名称,因此,我只更改了网址)。
然后使用 Gitlab URL:
$ git pull origin
由于远程URL已更改,因此您应该从 Gitlab 获取更改。
然后推送您的更改
$ git pusn origin
您应该完成!希望它对您有用,对我也有用!
答案 2 :(得分:1)
不,使用GitHub无法做到这一点。
相反,您需要:
git remote add gh git@github.com:org/repo.git
git remote add gh https://github.com/org/repogit
git push gh master
答案 3 :(得分:0)
不,MS github不允许这样做,而且可能永远不会。
当然,上游维护者可以将您的fork添加为远程存储,并从中进行分拣,但这比处理pull-requests要复杂得多。因此,很少有维护者愿意这样做。
另一种方式:所有者在gitlab上镜像他的项目。然后gitlab用户可以将其派生并提交补丁。与仅在MS github上处理单个项目相比,这还需要更多的工作,并且可能会更加令人困惑。
答案 4 :(得分:0)
扩展Kai和christianbundy的答案,我认为最简单的方法是
git remote add fork my/forked/github/url
git remote add gitlab my/gitlab/url
git push -u gitlab my-dev-branch
git push -u fork my-dev-branch