我们大部分的工作都在GitLab.com上进行(即不是本地安装的GitLab)。如果上游仓库位于GitHub上,是否有一种方法可以向上游提交拉取请求? (如果在特定方式下分叉上游仓库是解决方案的一部分,那么可以。)
我们大部分的工作都在GitLab.com上进行(即不是本地安装的GitLab)。如果上游仓库位于GitHub上,是否有一种方法可以向上游提交拉取请求? (如果在特定方式下分叉上游仓库是解决方案的一部分,那么可以。)
不是。正确的工作流程应该是将上游项目在GitHub上分叉到您自己的命名空间中。然后在您的GitLab存储库中使用您的分支作为上游,而不是您的分支的起源。
从您的GitLab存储库中,您随后将更改推送到您的分支(上游)。然后在GitHub上,您可以从您的GitHub分支向起源提交拉取请求。
这很奇怪,但这就是我的做法!
我在Github上有一个代码库,但我想使用Gitlab的CI,所以我将代码库从Github镜像到Gitlab,然后配置了CI等等... 我在网上找到了Gitlab Enterprise的一个功能(the feature),可以从GitLab推送更改到外部代码库,但由于我没有购买Gitlab Enterprise,所以我做了以下操作:
既然我们正在使用GIT,并且我们尝试成为优秀的程序员使其正常工作,因此:
我只是编辑了GIT URL
这样如何?
将URL从Github改为Gitlab(我的用户名和项目名称在两个服务中都相同,因此我只更改了URL)。
然后,使用Gitlab URL:
$ git pull origin
由于远程URL已更改,您应该从Gitlab获取更改。
然后推送您的更改:
$ git push origin
你应该完成了!希望它对你有用,它对我有效!
git pull gitlab
再执行 git push github
。 - lofidevops不,MS GitHub 不允许这样做,而且可能永远都不会。
当然,上游维护者可以将您的 fork 添加为远程,并从中挑选一些内容,但这比处理 pull-request 更麻烦。因此,很少有维护者愿意这样做。
另一种方法:所有者在 GitLab 上镜像他的项目。然后 GitLab 用户可以 fork 该项目并提交补丁。这也比仅在 MS GitHub 上处理单个项目更费力,可能更加混乱。
在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