和光同尘,与时舒卷

通过Gitlab向Github推送同步

2024.07.06

实现Gitlab向Github推送更新,解决Github访问不长的问题,但并不完美。

背景


  • Github访问速度越来越堪忧

  • Gitlab速度还可以

  • Github上配置了各类自动部署,必须使用Github

思路


  • Gitlab拉取Github仓库→Gitlab配置镜像仓库

    通过向gitlab的镜像仓库提交修改,自动同步到GitHub,触发部署

实操


  • Github端:

    Setting → Developer Settings → Personal access token → Create new token

    权限仅选择Repo即可,永不过期

  • Gitlab端:

    • 导入仓库

      Projects → new project → import project → Repository by URL

    • 填入代码仓,格式https://github.com/yourname/yourporject.git

    • 填写用户名,GitHub的用户名

    • 填写密码,也就是上一步生成的token

      导入成功后进入下一步

    • 配置推送

    • 进入刚导入的代码仓,添加镜像仓库地址

      Settings → Repository → Mirroring repositories → Add new

    • 填写推送地址 格式 https://[email protected]/yourname/yourproject

    • 填写用户名,GitHub的用户名

    • 填写密码,也就是上上一步生成的token

    • 配置完成后可以手动点击同步按钮,触发一次push测试

注意


  • 配置拉取代码仓 和 配置推送代码仓,url格式不同

  • Gitlab社区版的镜像仓库功能,只有推送,不能自动拉取

    所以缺点很明显:只能通过单一途径,Gitlab向Github更新内容

    如果从其他途径更新了内容,再从Gitlab老仓库更新,会导致回归到Gitlab上的版本,这不是我们想要的

    优点也很明显:在Github上不去的时候,可以通过Gitlab更新,曲线救国


如果能看到这篇文章,说明已经成功从Gitlab向Github推送并自动部署了 : )