【GitLab】【GitHub】GitLab和GitHub的双向同步

时间:2022-11-21 17:42:49

有这种需求,需要GitLab上的现有代码库,同步到GitHub上。

又有一种需求,需要将GitHub上的代码库,同步到gitlab上。

一.GitLab上的代码库,自动同步到GitHub上

  大致需要三步

1》在GitHub上创建私有访问Token,token就是只有一部分权限的密码【和你的登录密码相比,你的登录密码拥有完全的权限】【所以本步骤可以不进行,直接使用github的登录密码也是可以的】【1-6步】

2》需要在github上创建一个空代码库,提供URL地址,供gitlab使用【7步】

3》在GitLab上配置镜像地址,完成同步【8-13步】

1.登录GitHub,在右上角头像处,选择setting进入

【GitLab】【GitHub】GitLab和GitHub的双向同步

2.左侧选择Developer setting进入

【GitLab】【GitHub】GitLab和GitHub的双向同步

3.左侧点击personal  access tokens,进入

【GitLab】【GitHub】GitLab和GitHub的双向同步

4.右上角点击generate  new token ,进入

【GitLab】【GitHub】GitLab和GitHub的双向同步

5.选择要给新token赋予的权限

想要本token拥有操作代码库的权限,应勾选“repo”

【GitLab】【GitHub】GitLab和GitHub的双向同步

点击页面下方的generate token按钮

【GitLab】【GitHub】GitLab和GitHub的双向同步

6.保存生成的新的token到其他地方,之后你就看不到它了

token记录在这里【https://www.cnblogs.com/sxdcgaq8080/p/10531172.html

【GitLab】【GitHub】GitLab和GitHub的双向同步

7.最后需要在github上创建一个空仓库,用来接收gitlab同步过来的代码库

【注意:我这里建立的是私有的代码库,如果是公有代码库,可以自己尝试,看是否会出问题!】

【如果是共有代码库,那么可以不使用上面生成的token,而使用你GitHub的登录密码,尝试一下!】

【GitLab】【GitHub】GitLab和GitHub的双向同步

空的代码库生成,需要记录这个地址

https://github.com/AngelSXD/justjump.git

下面有用

【GitLab】【GitHub】GitLab和GitHub的双向同步

8.进入gitlab,选择要同步的代码库,点击进去

【GitLab】【GitHub】GitLab和GitHub的双向同步

9,光标移动到左侧设置,点击仓库

【GitLab】【GitHub】GitLab和GitHub的双向同步

10.选择镜像存储库 展开

【GitLab】【GitHub】GitLab和GitHub的双向同步

11.填写刚刚上面的那一串github的空代码库地址

但是注意地址需要加上username

原本的URL

https://github.com/AngelSXD/justjump.git

这里要填写的URL

https://AngelSXD@github.com/AngelSXD/justjump.git

username和后面的地址 以@隔开

密码处 填写的就是上面获取的token。

如果github中创建的是公有的仓库,可以尝试自己的github的登录密码填写此处,以或许更多更完整的权限!!!!

【GitLab】【GitHub】GitLab和GitHub的双向同步

12.点击镜像存储库后,会在下侧生成

需要点击多次,直到看到 更新按钮圈圈开始转动,并显示更新中 即开始更新【此时就可去github查看同步过去的代码了】

【GitLab】【GitHub】GitLab和GitHub的双向同步

【观察一下这里加密的URL格式:】

https://username:token或者password@github.com/AngelSXD/justjump.git

这也是之前版本的URL格式,只不过最新的gitlab版本,不需要密码写在URL中,而是填写在密码框!!!

好了 观察gitlab和github的同步情况!!!

gitlab显示

【GitLab】【GitHub】GitLab和GitHub的双向同步

github显示

【GitLab】【GitHub】GitLab和GitHub的双向同步

13.最后,可以在IDEA修改代码并发布至gitlab,测试是否会同步到github

gitlab上看到 已经提交的更新

【GitLab】【GitHub】GitLab和GitHub的双向同步

github上面也自动同步到了【可能因为网路的问题,会慢一点,但是完全自动的,最终一定会同步的】【如果需要立即同步,一点延迟也受不了,则可以手动点击更新按钮,完成立即更新同步】

【GitLab】【GitHub】GitLab和GitHub的双向同步

====================================================================================================================================

二、GitHub上的代码,拉取到GitLab上

这个方向很简单,只需要上面第一模块在github上生成的token。留作备用

1.在gitlab上新建一个项目

【GitLab】【GitHub】GitLab和GitHub的双向同步

2.选择Import project 导入项目,并选择从github导入

【GitLab】【GitHub】GitLab和GitHub的双向同步

3.点击从github导入后,需要在框中填入第一模块中在github中创建的token

注意说明,gitlab要求  github提供的token所包含的权限,是需要选择【repo】权限的,而第一模块中,咱们获取的token是勾选了repo权限的!!!

【GitLab】【GitHub】GitLab和GitHub的双向同步

4.填写以后,点击右侧List your GitHub repositories,展示你的GitHub资源库列表

那现在选择你想拉取到gitlab的项目,点击后面的导入即可

【GitLab】【GitHub】GitLab和GitHub的双向同步

点击后,会显示进行的状态

【GitLab】【GitHub】GitLab和GitHub的双向同步

点击/root/swapping,可以跳转到当前拉取的项目的详情页【速度很慢,拉取很慢】

【GitLab】【GitHub】GitLab和GitHub的双向同步

5.导入完成后,即可在gitlab上看到从github上拉取过来的项目

【GitLab】【GitHub】GitLab和GitHub的双向同步

6.现在,想要从gitlab拉取clone项目到本地

可以去这篇看看https://www.cnblogs.com/sxdcgaq8080/p/10509660.html

=======================================结束=======================================