私有GitLab仓库自动同步到GitHub


私有GitLab仓库自动同步到GitHub

原来的仓库是放在GitHub上,但是会经常抽疯访问不了。搭建一个私有的GitLab-CE,考虑到自己搭建的GitLab的安全性。选择同时保留两个仓库。此时的问题就是怎么自动同步两个仓库的代码,毕竟不能手动去同步。

版本信息

GitLab-CE V14.9.2

因为GitLab的社区版本并不支持镜像仓库的PULL操作,只支持PUSH也就决定了仓库同步的方向必须是由GitLab同步到GitHub。当然如果是安装的GitLab企业版本(GitLab-EE)并且有授权那就另当别论了。

1. 创建代码仓库,并同步仓库

此时可能会存在几种情况:

  1. 没有任何仓库,只有本地代码
  2. 只存在GitHub仓库
  3. 只存在GitLab仓库
  4. GitLab和GitHub仓库都存在

1. 不存在任何仓库,只有本地代码时

  • 首先在GitLab上创建代码库,并同步代码到GitLab的仓库
  • 在GitHub上创建一个空的仓库

2. 只存在GitHub仓库

在GitLab上导入已经存在的GitHub仓库

3. 只存在GitLab仓库

在GitHub上创建一个空的仓库

4.GitLab和GitHub仓库都存在

这种情况比较特殊,如果两个仓库的代码是同步状态则不需要任何处理,如果两边的代码库不一致,则需要保证GitLab的仓库为最新代码

不管是哪种情况,实际都是要保证GitLab上的仓库为最新的代码。GitHub上可以是空仓库也可以是和GitLab上保持同步的仓库,因为代码的自动同步方向为从GitLab->GitHub

2. 设置镜像仓库

在GitLab 仓库的设置中镜像同步信息


注意!!!

在这里需要特别注意的就是最上侧填写的Git仓库URL,这个地址 是由你在GitHub上的账号加GitHub新建的repository地址组成
example:
我在GitHub的账号是: pony@ponycool.com
刚刚新建的repository的地址是: https://github.com/PonyCool/typecho-plugins.git
那么最终写入上面的地址应该是:
https://pony@ponycool.com@github.com/PonyCool/typecho-plugins.git

3. 同步仓库

设置完镜像同步信息可以点击立即更新开始同步

如果同步时报错,会反馈错误信息。可以根据官网帮助进行修改

GitLab官方同步镜像帮助

声明:初心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 私有GitLab仓库自动同步到GitHub


愿你勿忘初心,并从一而终