我一直在使用私有GitLab实例来保存我的所有代码。但由于现在与我一起工作的大多数员工都有一个GitHub帐户,我真的很想开始行动并将我的Gitlab存储库镜像到Github。
我的情况:
我知道git中有--镜像
开关,但我不确定这是如何工作的。我在网上找到的文档非常不稳定…所以如果有人能帮我就好了。:)
GitLab现在可以选择从UI执行此操作,转到设置-
https://gitlab.com/yourUserNameInGitLab/yourRepoName/settings/repository
然后找到选项“镜像存储库”并单击展开。您要做的是选择“推送”镜像方向并填充此URL:
https://yourUserNameInGitHub@github.com/yourUserNameInGitHub/yourRepoName.git
在密码字段中,您必须使用个人访问令牌(因为GitHub现在已弃用密码访问),您可以在此处生成:https://github.com/settings/tokens(生成时不要忘记启用“repo”和“工作流”权限)
另一种选择是向源
添加一个额外的URL:
git remote set-url --add origin git@github.com:<USERNAME>/<PROJECTNAME>.git
当您推送到源时,它将推送到原始源(gitlab)和上面添加的源(github)。
前面的StackOverflow问题解决了如何将您的存储库从另一个服务移动到GitHub,第一个答案解决了如何通过命令行来做到这一点,第二个和第三个是更用户友好的方式,不幸的是,如果您的GitLab实例在您的本地服务器上(这似乎是您的情况),这对您不起作用。
但是,您可以将您的存储库从命令行“导入”到GitHub,正如GitHub文档所解释的那样,这是建议的方式,因为GitHub提供了这种方式来替代使用他们的GitHub导入器工具(这在前面的SO问题中突出显示)
从留档中采取的步骤:
>
从您的GitLab服务器制作本地裸克隆:
git clone-裸https://githost.org/extuser/repo.git
裸克隆是完全重复的,没有用于编辑文件的工作目录,因此它是一个干净的导出。
切换到该目录,然后使用--镜像
标志将其推送。镜像标志确保引用(分支/标签)被复制到GitHub。
cd*repo. git*
git push镜像https://github.com/ghuser/repo.git
最后删除您创建的本地存储库。
cd…
rm-rf repo. git