最近遇到一个问题,想将自己私有gitlab仓库中的代码自动实时的同步到github上,
这样做的好处,是自己只需要维护gitlab中自己写的代码即可,会自动同步到github上再分享给别人,这样就避免了直接暴露自己的私有gitlab。也只需要维护一份代码即可。
gitlab有过升级,在做的过程中遇到一些坑,记录下来,给自己mark一下,也希望能帮助遇到同样需求的你。

1.github新建repository

先在github中新建一个空的存储器,如下:

gitlab ruby同步数据 gitlab 自动同步_gitlab同步到github

2.gitlab设置同步信息

然后回到gitlab上选择到你希望同步到github的项目中,

左侧选择setting -> Repositort -> Mirror a repository 如下 所示:

gitlab ruby同步数据 gitlab 自动同步_gitlab同步_02


在这里需要特别 特别注意的就是最上侧填写的地址,这个地址 是由你在github上的账号加github新建的repository地址组成

example:

我在github的账号是: testgithub@123.com

刚刚新建的repository的地址是: https://github.com/xxx.git

那么最终写入上面的地址应该是:

https://testgithub@123.com@https://github.com/xxx.git 这一条其实上面有写,不过一开始没注意,遇到这个坑。大家切记。

查阅了以前的方式是密码也会加载后面,大体是:

https://testgithub@123.com:passWord@https://github.com/xxx.git的形式,不过后来gitlab升级改版后吧密码拿下来单独输入了。

再往下面则是pull的时候一些权限规则的设置,我这里只选择第三种:

Only mirror protected branches前面打钩即可

gitlab ruby同步数据 gitlab 自动同步_gitlab ruby同步数据_03

3.开始同步

然后点击下面的Mirror repository按钮就可将上述添加的信息同步到同步列表中,然后点击同步按钮就可开始同步。

gitlab ruby同步数据 gitlab 自动同步_gitlab ruby同步数据_04


这个过程大约是需要一会会的,等着就好。

4.查看

gitlab ruby同步数据 gitlab 自动同步_git_05


等会刷新页面,出现这种状态表示已近sync完毕,此时去github上的repository上去看下,所有的项目代码已近全部sync过来了。

gitlab ruby同步数据 gitlab 自动同步_github_06

5:修改gitlab中的代码

这一步是同步完之后,github的代码应该会自动同步gitlab上的修改。

这里实验一下,我们先看下github上的commit提交录:

gitlab ruby同步数据 gitlab 自动同步_gitlab同步到github_07


这个时候在代码中新提交一部分代码,看看github是否会自动同步到最新的提交

gitlab上的最新一次提交记录如下:

gitlab ruby同步数据 gitlab 自动同步_gitlab同步_08


去github上做好关联的repository查看commit信息如下:

gitlab ruby同步数据 gitlab 自动同步_github_09


测试完毕,可发现github和gitlab已经最好关联,github会自动pull gitlab的内容。