如果需要,可以从GitLab转移存储库到GitHub。如果是这样,我该如何做呢?
此外,考虑到我可能最终决定将它们转移到GitHub(因为它目前有更多的功能,我可能会发现对我的项目很方便),这样做是否有任何陷阱或预防措施,我需要在这样做之前记住。
如果需要,可以从GitLab转移存储库到GitHub。如果是这样,我该如何做呢?
此外,考虑到我可能最终决定将它们转移到GitHub(因为它目前有更多的功能,我可能会发现对我的项目很方便),这样做是否有任何陷阱或预防措施,我需要在这样做之前记住。
当前回答
对于任何仍然在寻找一个更简单的方法将回购从Gitlab转移到Github,同时保留所有历史的人。
步骤1。登录到Github,创建一个私人回购与您想要转移的回购完全相同的名称。
步骤2。在“push an existing repository from the command”下复制新repo的链接,它看起来像这样:
git@github.com:your-name/name-of-repo.git
步骤3。打开你的本地项目,寻找。git文件夹,这通常是一个隐藏文件夹。在.git文件夹中打开配置。
配置文件将包含如下内容:
[remote "origin"]
url = git@github.com:your-name/name-of-repo.git
fetch = +refs/heads/:refs/remotes/origin/
在[remote "origin"]下,将URL更改为您在Github上复制的URL。
步骤4。在终端中打开项目文件夹并运行:git push——all。这将把你的代码推送到Github以及所有的提交历史。
第5步。为了确保一切都按预期工作,更改、提交、推送和新提交应该出现在新创建的Github repo上。
步骤6。作为最后一步,您现在可以归档您的Gitlab回购或将其设置为只读。
其他回答
对于任何仍然在寻找一个更简单的方法将回购从Gitlab转移到Github,同时保留所有历史的人。
步骤1。登录到Github,创建一个私人回购与您想要转移的回购完全相同的名称。
步骤2。在“push an existing repository from the command”下复制新repo的链接,它看起来像这样:
git@github.com:your-name/name-of-repo.git
步骤3。打开你的本地项目,寻找。git文件夹,这通常是一个隐藏文件夹。在.git文件夹中打开配置。
配置文件将包含如下内容:
[remote "origin"]
url = git@github.com:your-name/name-of-repo.git
fetch = +refs/heads/:refs/remotes/origin/
在[remote "origin"]下,将URL更改为您在Github上复制的URL。
步骤4。在终端中打开项目文件夹并运行:git push——all。这将把你的代码推送到Github以及所有的提交历史。
第5步。为了确保一切都按预期工作,更改、提交、推送和新提交应该出现在新创建的Github repo上。
步骤6。作为最后一步,您现在可以归档您的Gitlab回购或将其设置为只读。
如果你想迁移包括维基和所有问题和里程碑在内的回购,你可以使用node-gitlab-2-github和GitLab到GitHub迁移
这是非常容易通过导入存储库功能:
登录github.com,
侧面的个人资料图片,你会发现+按钮点击,然后将有选项导入存储库:
你会发现这样一个页面:
您的旧存储库的克隆URL是必需的,这是gitlab回购URL在您的情况下。
然后选择所有者,然后键入此回购的名称,然后单击开始导入按钮。
你可以转移这些(简单地通过添加一个远程到GitHub回购并推送它们)
在GitHub上创建一个空的回购 git远程添加github https://yourLogin@github.com/yourLogin/yourRepoName.git Git推送——镜像github
历史将是一样的。
但是你将失去访问控制(在GitLab中定义的团队对你的回购具有特定的访问权限)
如果你遇到任何问题与GitHub回购的https URL:
The requested URL returned an error: 403
你所需要做的就是输入你的GitHub密码,但OP建议:
然后,您可能需要以ssh方式推动它。你可以在这里阅读更多关于如何做到这一点。
参见“推到Git返回错误码403致命:HTTP请求失败”。
注意,mike还在评论中补充道:
GitLab也可以设置为将镜像推送到下游存储库,并且有具体的说明来将镜像推送到GitHub。 这可以使用GitHub个人访问令牌,也可以设置为定期推送。 您可以使用此选项在GitHub上进行共享,但请将主要开发活动保留在GitLab实例中。
可以使用以下命令:
cd existing_repository
git remote rename origin old-origin
git remote add origin <yourRepository.git>
git push -u origin --all
git push -u origin --tags
如果发生错误,您可以尝试使用-f命令强制推送,键入如下:
git push -u -f origin --all
git push -u -f origin --tags
这将是GitLab推荐的导入GitHub上现有存储库的路径,但是,如果您更改了<yourRepository. conf。git>链接到GitHub上的存储库链接,可以走另一种方式,从GitLab转移到GitHub。在实践中,你创造了一个新的原点,并强迫推动一切。