最近遇到一个问题,想将自己私有gitlab仓库中的代码自动实时的同步到github上,
这样做的好处,是自己只需要维护gitlab中自己写的代码即可,会自动同步到github上再分享给别人,这样就避免了直接暴露自己的私有gitlab。也只需要维护一份代码即可。
gitlab有过升级,在做的过程中遇到一些坑,记录下来,给自己mark一下,也希望能帮助遇到同样需求的你。
1.github新建repository
先在github中新建一个空的存储器,如下:
2.gitlab设置同步信息
然后回到gitlab上选择到你希望同步到github的项目中,
左侧选择setting -> Repositort -> Mirror a repository 如下 所示:
在这里需要特别 特别注意的就是最上侧填写的地址,这个地址 是由你在github上的账号加github新建的repository地址组成
example:
我在github的账号是: [email protected]
刚刚新建的repository的地址是: https://github.com/xxx.git
那么最终写入上面的地址应该是:
https://[email protected]@https://github.com/xxx.git
这一条其实上面有写,不过一开始没注意,遇到这个坑。大家切记。
查阅了以前的方式是密码也会加载后面,大体是:
https://[email protected]:[email protected]https://github.com/xxx.git的形式,不过后来gitlab升级改版后吧密码拿下来单独输入了。
再往下面则是pull的时候一些权限规则的设置,我这里只选择第三种:
Only mirror protected branches前面打钩即可
3.开始同步
然后点击下面的Mirror repository按钮就可将上述添加的信息同步到同步列表中,然后点击同步按钮就可开始同步。
这个过程大约是需要一会会的,等着就好。
4.查看
等会刷新页面,出现这种状态表示已近sync完毕,此时去github上的repository上去看下,所有的项目代码已近全部sync过来了。
5:修改gitlab中的代码
这一步是同步完之后,github的代码应该会自动同步gitlab上的修改。
这里实验一下,我们先看下github上的commit提交录:
这个时候在代码中新提交一部分代码,看看github是否会自动同步到最新的提交
gitlab上的最新一次提交记录如下:
去github上做好关联的repository查看commit信息如下:
测试完毕,可发现github和gitlab已经最好关联,github会自动pull gitlab的内容。