问题: 在gitlab因为某些问题挂机,或没法再次启动的状况下,如何将已有项目导出到新的gitlab服务器中git
解决:gitlab有本身的备份命令和定时备份配置,可是若是既没有定时备份,而备份命令在挂机的状况也没法执行,这是灾难性的时刻,sql
有可能有的项目本地没有了,大部分状况多人同时开发,合并代码会是一个大问题,从git的原理出发,git会为每一个项目在postgresql中生成一条记录,而后根据这条记录指向对应的文件夹,那么答案就找到了,服务器
操做流程以下:app
1.部署一个新的git服务器ssh
2.在新的gitlab服务器上建相应的项目,注意项目的组和名字必须是同样的,而后添加README,关于组是什么概念能够看图片红框,总之和老的gitlab服务名字必须同样gitlab
3.关键的点来了,进入/var/opt/gitlab/git-data/repositories/ 这个路径, 此时是否是很眼熟了,跟老的服务器上如出一辙,直接删除掉/var/opt/gitlab/git-data/repositories 目录下的全部文件,而后替换成老的服务器中该目录下的全部文件post
4.spa
这个命令比较关键,给文件赋予git访问权限, 从gitlab页面看,已经能看到这些项目了,已经成功一大半了postgresql
5.在新的gitlab上添加全部的开发人员,并给项目添加开发人员,若是是开发组就更快捷了,看我的喜爱code
6.从gitlab中拉取项目,此时应该会报ssh错误,你能够先用http方式拉取,至于怎么拉取就不作解释了,到此一切OK