[英]How to run curl commands from gitlab-ci CI/CD on gitlab/github?
[英]Mirroring from Gitlab to Github
我一直在使用私有 Gitlab 实例来保存我的所有代码。 但是由于大多数与我一起工作的员工现在都有一个 Github 帐户,我真的很想搬家并将我的 Gitlab 存储库镜像到 Github。
我的情况:
我知道 git 中有--mirror
开关,但我不确定这是如何工作的。 我在网上找到的文档非常不稳定......所以如果有人可以帮助我,那就太好了。 :)
GitLab 现在有一个从 UI 执行此操作的选项,请转到您的 repo 的 Settings->Repository:
https://gitlab.com/yourUserNameInGitLab/yourRepoName/settings/repository
然后找到“镜像存储库”选项并单击展开。 您要做的是选择“推送”镜像方向并填写此 URL:
https://yourUserNameInGitHub@github.com/yourUserNameInGitHub/yourRepoName.git
在密码字段中,您必须使用个人访问令牌(因为 GitHub 现在已弃用密码访问),您可以在此处生成: https ://github.com/settings/tokens(不要忘记启用“repo " 和 "工作流" 生成时的权限)
另一种选择是向原origin
添加一个额外的 URL:
git remote set-url --add origin git@github.com:<USERNAME>/<PROJECTNAME>.git
当您推送到原点时,它将同时推送到原始原点(gitlab)和上面添加的原点(github)。
这个先前的 StackOverflow问题解决了如何将您的存储库从另一个服务移动到 GitHub,那里的第一个答案解决了如何通过命令行进行操作,第二个和第三个是更用户友好的方式,不幸的是,如果您的GitLab 实例位于您的本地服务器上(这似乎是您的情况)。
但是,您可以按照GitHub docs的说明将您的存储库从命令行“导入”到 GitHub,这是建议的方式,因为 GitHub 提供了此方法作为使用其 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
2021 年 8 月 13 日发布仅使用用户名/密码将存储库从 Gitlab 镜像到 Github 将失败,因为我们需要使用 PAT 来执行此操作。
第 1 步:从 Github 创建 PAT:
您还应该能够看到您的个人访问令牌。 确保复制它,因为我们将在以下步骤中需要它。
第 2 步:从 Gitlab,转到您希望镜像的仓库:
如果您更喜欢 SSH 连接而不是 HTTPS 连接 GitLab 到 ZD3B7C913CD04EBFEC0E9EC32CCB6 连接
git@github.com:yourusername/yourrepositoryname.git
)ssh://git@github.com/yourusername/yourrepositoryname.git
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.