【干货防踩坑/全图文分步/Gitlab镜像仓库自动同步】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法)

【干货+踩坑】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法)

众所周知,Gitlab是个好东西。为什么呢?GitHub没有的功能,他全有了。更何况还可以私有部署。这两天自己部署了Gitlab,然后想把自己的项目和Github同步,于是乎有了如下的故事。我搜索了一下CSDN同类的文章,基本没有任何的讲Gitlab 配置镜像仓库的方法,于是有感而发,写了这个

文章目录

  • [【干货+踩坑】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法)](#【干货+踩坑】Gitlab CE/EE镜像仓库的配置技巧(含ssh/密码两验证方法))

前排提示:社区版不支持拉取镜像

如果你的Gitlab是社区版,那你就凉凉了,下面的只有推送【所以不要纠结为什么不能下拉框,这是付费功能】,后面的不需要折腾。会自己搞到激活的GitlabEE版本的,请继续看。不得不感叹Gitlab的刀法。或者你只需要推送,不需要拉仓库,那也没事的。

【补充】Gitlab EE官方的价格是19美元,每人每个月。

【验证方式】通过密码拉取

这一部分主要讲的是验证方式是密码的!宝宝们眼睛睁大啦!要ssh的看后面!

第一步 找到配置仓库镜像的位置

我这个是GitlabEE16的新版,所以首先打开项目,然后左边栏找《设置》、《仓库》,然后去右边找到《镜像仓库》、就可以找到了。

第二步 输入信息

  • 假设我的Github的仓库是:https://github.com/Musicminion/ayakalab-mirror
  • 上面的表格请输入:Git仓库URL:https://musicminion@github.com/Musicminion/ayakalab-mirror
  • 一定要记得加上自己的用户名!在最前面,否则拉不成功的。
  • 然后镜像方向选择拉取或者推送,验证方式选择密码
  • 密码输入:Github的Personal Token,请打开Github tokens然后访问,新建一个密钥。密钥的权限就是repo就可以了。【为了怕有人不会,我还是手动截图教学】

【提示】下面的选择Generate new token(classic)

【提示】然后按下面的勾选就好了,repo勾上,然后起一个名字。

【提示】然后滑到底部,点绿色的就行。

然后赶紧把密钥复制下来!- 密钥的开头应该是ghp-

  • 然后密码就是你复制的内容,然后点击镜像仓库就可以了

第三步 开始享受吧~

手动点击循环的按钮,然后再看到最近成功的更新是刚刚就好了。

只要你的Gitlab EE账户绑定了Github账户,所有的你个人的提交,都是会算github上对应仓库的你的提交的!头像都一模一样!非常强大。 比如下面的我的第二次提交实际上是gitlab上面的,也算进去了。

【验证方式】通过ssh公钥拉取

注意选择清楚!一定要是ssh公钥,哪怕你不懂,跟着我做就好了!

第一步 写对gitlab的ssh链接

首先,就是要填写对gitlab的Git仓库URL!先打开Github对应的仓库,然后选择ssh的复制,得到:git@github.com:Musicminion/ayakalab-mirror.git

  • 然后,在前面加上ssh:// ,就变成了ssh://git@github.com:Musicminion/ayakalab-mirror.git
  • 再然后,找到里面的冒号 ,把冒号:换成/
  • 这样就变成了ssh://git@github.com/Musicminion/ayakalab-mirror.git
  • 一定看清楚!两个地方!一个是前缀,一个是冒号换成/

第二步 检测主机密钥

记得点击一次检测主机密钥

然后就是下面的这个样子,镜像方向根据你自己需要选择就好了。

第三步 镜像仓库

然后验证方式一定勾选:【SSH公钥】,之后再点击镜像仓库。

然后看下面右下角不是有三个按钮吗(注意是ssh开头的 ),点击那个复制的(也就是第一个/最左边的按钮

再你就成功复制了公钥!回到你GIthub的仓库,仔细看:下面操作,添加你的key

如下图所示:

  • Title随便写,写你喜欢名字就好
  • Key就是你刚刚复制的内容。
  • 【Tip】有人可能会问Allow Write Access要不要勾选,你可以随意选择 ,有强迫症的化就勾上【比如我】,勾选和不勾选,没有任何影响,无论你是拉取还是推送到这个Github仓库

    效果如下所示,硬核打码。

    然后再回gitlab,一定要等一会再尝试拉去或者推送镜像。

提问时间和结语

你一定会疑惑,怎么搞这么复杂,我还以为直接复制github的那个链接就能成功,而且这还有修改冒号什么的。。。我成功配置这个查阅了不少的gitlab的stack overflow之类的文档,最后才发现了正确的方法。

我本来打算把链接搬上来的,可惜已经年久,当时也没有保存,我印象最深刻的就是,有一个人在gitlab的开发仓库下面提出了一个issue,how hard would it be to support ssh ****之类的,意思就是支持标准的ssh镜像仓库到底有多么难,后来找了一圈,才发现把冒号替换的方法。

相关推荐
张居斜1 小时前
GitHub Actions + 阿里云 OSS:OIDC 免密同步构建产物
github·oss·llm-wiki
用户3228360084474 小时前
python-rapidjson:用 C++ 速度处理 JSON 的 Python 库
github
逛逛GitHub4 小时前
4 个比较实用的 GitHub 开源项目,浅浅的收藏一波。
github
大树884 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
Hommy885 小时前
【剪映小助手】添加贴纸接口(Add Sticker)
后端·github·剪映小助手·视频剪辑自动化·剪映api
霸道流氓气质5 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
开发者联盟league5 小时前
安装pnpm
ssh
Inhand陈工6 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 小时前
ARP代理--工作原理
运维·网络·arp·arp代理