假设我想对其他人的项目实施修复。该项目位于 GitHub 上。
我可以在 GitHub 上创建一个分支并实施修复。
但是,我想在 GitLab 而不是 GitHub 上创建我的分支。
这可能吗?怎么办?
我读过这篇文章: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/
无论如何,我不知道我应该做什么。
正确的做法是什么。
谢谢。
更新
GitLab 上的存储库镜像可能没有意义。我可以在 GitLab 上创建我的 GitHub 存储库的镜像,但无法创建其他人的存储库的镜像。
https://docs.gitlab.com/ee/user/project/repository/mirror/
这就是我到目前为止所做的:
我已将原始 GitHub 项目克隆到我的本地计算机。我已将修复提交到本地存储库中的新分支。我在 GitLab 上创建了一个空项目。我已将本地存储库中的 origin 设置为 GitLab 上的空项目,并将两个分支推送到 GitLab。我已将本地存储库中的上游设置为 GitHub 存储库。
当我想从原始 GitHub 存储库获取新提交到 GitLab 上的存储库(即同步存储库)时,我可以使用本地存储库作为中间步骤来完成此操作。但是,GitHub 上的存储库和 GitLab 上的存储库之间没有直接联系。我的设置正确吗?如果我在 GitHub 上 fork 有什么区别吗?
如果您只想跟踪更改,请首先在 GitLab(或您可能使用的其他任何东西)中创建一个空存储库,然后将其克隆到您的计算机。
然后将 GitHub 项目添加为“upstream”远程:
git remote add upstream https://github.com/user/repo
现在,如果有任何更改,您可以从上游获取和拉取。 (如果您有访问权限,您也可以推送或合并到它。)
git pull upstream master
最后,推回您自己的 GitLab 存储库:
git push origin master
如果您不想手动拉取上游/推送源,GitLab 在 Settings => Repository => Mirroring repositories 中提供了镜像功能。
仅浏览器方式:
您可以仅使用 Web 界面导入任何公开可用的 GitHub 存储库,而不是进行分叉:
最近使用了这种技术,即使没有 GitHub 帐户,它也适用于任何公共存储库。请参阅此 GitLab 文档 页面以获取信息来源。
可以分叉私有 github 存储库。
^ 我刚刚使用 github 上的私人存储库完成了此操作,已成功导入(包括分支等)。导入的项目会自动保密;)
这已经为我解决了。不是直接分叉,但所有分支和提交都被推送。
git push --set-upstream git@<<yourgitlabpath>>$(git rev-parse --show-toplevel | xargs basename).git $(git rev-parse --abbrev-ref HEAD)