在 Debian 上迁移 GitLab 仓库通常有几种方式,取决于你是整体迁移 GitLab 服务,还是只迁移某个仓库。下面按常见场景说明。
适用于:换服务器、系统重装、版本升级后保留数据。
sudo gitlab-rake gitlab:backup:create
生成的备份文件在:
/var/opt/gitlab/backups/
文件名类似:
1234567890_2024_01_01_gitlab_backup.tar
scp /var/opt/gitlab/backups/*.tar root@new-server:/var/opt/gitlab/backups/
# 查看旧版本
cat /opt/gitlab/version-manifest.txt
新服务器安装相同版本的 GitLab(非常重要)。
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=1234567890_2024_01_01
sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true
✅ 完成后仓库、用户、权限、CI 全部恢复。
适用于:只想要代码和提交记录。
git clone --mirror git@old-gitlab.com:group/project.git
cd project.git
git push --mirror git@new-gitlab.com:group/project.git
✅ 保留:
❌ 不包含:
.tar.gz✅ 包含:
如果是 Docker 部署:
docker exec -it gitlab gitlab-rake gitlab:backup:create
备份目录映射到宿主机:
/srv/gitlab/data/backups
/var/opt/gitlab/backups 属主正确--mirror 更稳定如果你能告诉我:
我可以给你更精确的命令。