参考

gitlab 存储仓库目录设置及数据迁移_gitlab可以分目录吗?-CSDN博客

说明

  • 默认情况下 gitlab 仓库数据存储在 /var/opt/gitlab/git-data 目录下,仓库存放在子目录 repositories 里面

  • 可以通过修改/etc/gitlab/gitlab.rbgit_data_dirs这一行来自定义 git-data 的父目录

步骤

设置仓库数据目录

1
[root@gitlab ~]#  vim /etc/gitlab/gitlab.rb

把注释取消然后指定新的仓库存储位置

1
git_data_dirs({ "default" => { "path" => "/home/gitlab-data" } })

/home/gitlab-data 是迁移的目标目录,注意 :目标路径和其子路径必须不能为软链接

情况一:仓库无数据

1
2
[root@gitlab ~]# gitlab-ctl stop
[root@gitlab ~]# gitlab-ctl reconfigure

情况二:已存在 Git 仓库数据

准备迁移之前要停止GitLab服务,防止用户写入数据

1
[root@gitlab ~]# gitlab-ctl stop
1
[root@gitlab ~]# rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab-data/

注意 ‘repositories’后面不带斜杠,而 ‘/home/gitlab-data’后面是有斜杠的

修复权限设置

1
[root@gitlab ~]# gitlab-ctl reconfigure

检查下 /home/gitlab-data 的目录

1
2
[root@gitlab ~]# ls  /home/gitlab-data/
repositories

启动 GitLab,验证

1
[root@gitlab ~]# gitlab-ctl start

其它

设置存储仓库数据的备用目录

注意的是:自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置, 来增加多个 git 数据存储目录

1
2
3
4
git_data_dirs({
"default" => { "path" => "/var/opt/gitlab/git-data" }, //默认存储目录
"alternative" => { "path" => " /home/gitlab-data" } //备用存储目录
})