修改配置文件 sudo vi /etc/gitlab/gitlab.rb
git_data_dir "/mnt/application/gitlab/git-data"
如果
git_data_dir
前面带有
#
号表示这个属性为被注释的,把前面的
#
号去掉就好了
更新gitlab配置
sudo gitlab-ctl reconfigure
迁移旧数据到新仓库位置
这时候你就可以访问新的gitlab的网站了,但是你会发现所有的仓库都是空的,这是因为原来的git仓库的数据都没迁移过来,下面我们就要迁移旧仓库的数据到新建的仓库位置下了
找到旧仓库的位置,一般都会在这个位置下
/var/opt/gitlab/git-data/
用
cp
命令复制旧仓库下的数据到新的仓库下
这时候重新打开git的网站(记得关闭之后再打开,不然浏览器会有缓存的),就可以看到旧仓库的数据导入到新的仓库下了
修改本地的仓库配置
找到迁移的项目的本地项目的路径下
输入
git remote -v
,查看现在的本地仓库所对应的地址
修改git根目录下
.git
文件下的config文件
修改
url
参数的值为新的仓库地址
提交一个代码测试下,卧槽,报错了?什么错误,让我们来看一看
remo@remo:/qualcomm/jenkins/r1528_ap/oe-core$ git push
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (8/8), 676 bytes, done.
Total 8 (delta 3), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To ssh://repogitgerrit@192.168.0.198/home/repogitgerrit/repositories/9x25oecore.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ssh://repogitgerrit@192.168.0.198/home/repogitgerrit/repositories/9x25oecore.git'
remo@remo:/qualcomm/jenkins/r1528_ap/oe-core$ ls
现在的错误就是因为linux的用户组权限问题而造成的,因为我们迁移到的云数据盘,git的用户组在云硬盘上没有权限而造成的
怎么解决我们的问题呢?
进到你服务器的git仓库下
我们刚才将mnt/application/gitlab/git-data
设置为我们现在的仓库位置了
执行如下命令
输入vim /etc/group
查看用户组
chgrp -R git .
git代表的是用户组为git的组
chmod -R g+rwX .
赋给用户组读写可执行的权限
find . -type d -exec chmod g+s '{}' +
如果刚才的操作没生效的话,再输入git config core.sharedRepository
或者git config core.sharedRepository group
提交代码进行测试,ok了