我一直在使用私有Gitlab实例来保存我的所有代码。但由于与我合作的大多数员工现在都有一个Github帐户,我真的很想移动并将我的Gitlab回购镜像到Github。
我的情况:
我知道git中有--mirror
开关,但我不确定这是如何工作的。我在网上找到的文档非常糟糕......所以如果有人可以帮助我,那就太好了。 :)
答案 0 :(得分:5)
This previous StackOverflow问题解决了如何将您的存储库从另一个服务转移到GitHub,第一个答案解决了如何通过命令行执行此操作,第二个和第三个是更加用户友好的方式,遗憾的是不会为你工作如果你的GitLab实例在你的本地服务器上(这似乎是你的情况)。
然而,您可以导入'您的存储库从命令行到GitHub,如by GitHub docs所述,这是GitHub offers this as an alternative建议的使用GitHub Importer工具的方式(在之前的SO问题中突出显示)
从文档中删除的步骤:
从GitLab服务器创建本地裸克隆:
git clone --bare https://githost.org/extuser/repo.git
裸克隆是完全重复的,没有用于编辑文件的工作目录,因此它是一个干净的导出。
切换到该目录,然后使用--mirror
标志推送它。 镜像标志确保将引用(分支/标签)复制到GitHub。
cd *repo.git*
git push --mirror https://github.com/ghuser/repo.git
最后删除您创建的本地存储库。
cd ..
rm -rf repo.git
答案 1 :(得分:3)
GitLab现在可以从UI中对此进行选择,请转到“设置”->您的仓库的存储库:
https://gitlab.com/yourUserNameInGitLab/yourRepoName/settings/repository
然后找到选项“镜像存储库”,然后单击“展开”。您要做的是选择“推”镜像方向并填写以下URL:
https://yourUserNameInGitHub@github.com/yourUserNameInGitHub/yourRepoName.git
答案 2 :(得分:0)
另一种选择是向origin
添加一个附加URL:
git remote set-url --add origin git@github.com:<USERNAME>/<PROJECTNAME>.git
当您推送到原点时,它将同时推送到原始原点(gitlab)和上面添加的原点(github)。