从Gitlab镜像到Github

时间:2015-05-15 20:53:32

标签: git github gitlab mirror

我一直在使用私有Gitlab实例来保存我的所有代码。但由于与我合作的大多数员工现在都有一个Github帐户,我真的很想移动并将我的Gitlab回购镜像到Github。

我的情况:

  • 运行Gitlab(Omnibus)的服务器
  • 一个Github帐户,我将为我和我的员工组织一个组织。

我知道git中有--mirror开关,但我不确定这是如何工作的。我在网上找到的文档非常糟糕......所以如果有人可以帮助我,那就太好了。 :)

3 个答案:

答案 0 :(得分:5)

This previous StackOverflow问题解决了如何将您的存储库从另一个服务转移到GitHub,第一个答案解决了如何通过命令行执行此操作,第二个和第三个是更加用户友好的方式,遗憾的是不会为你工作如果你的GitLab实例在你的本地服务器上(这似乎是你的情况)。

然而,您可以导入'您的存储库从命令行到GitHub,如by GitHub docs所述,这是GitHub offers this as an alternative建议的使用GitHub Importer工具的方式(在之前的SO问题中突出显示)

从文档中删除的步骤:

  1. Create a new repository你想在GitHub推进。
  2. 从GitLab服务器创建本地裸克隆:

    git clone --bare https://githost.org/extuser/repo.git

  3. 裸克隆是完全重复的,没有用于编辑文件的工作目录,因此它是一个干净的导出。

    1. 切换到该目录,然后使用--mirror标志推送它。 镜像标志确保将引用(分支/标签)复制到GitHub。

      cd *repo.git*

      git push --mirror https://github.com/ghuser/repo.git

    2. 最后删除您创建的本地存储库。

      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)。