下面按常见场景给你讲如何在 Debian 上迁移 GitLab 数据。最推荐的是 官方备份恢复方式,安全且完整。
gitlab-rake gitlab:env:infosudo gitlab-rake gitlab:backup:create
生成的文件在:
/var/opt/gitlab/backups/
YYYYMMDD_HHMMSS_gitlab_backup.tar
可选:只备份代码不备份 uploads(大文件)
sudo gitlab-rake gitlab:backup:create SKIP=uploads
scp /var/opt/gitlab/backups/*.tar root@new-server:/var/opt/gitlab/backups/
apt-get install gitlab-ee=版本号
或
apt-get install gitlab-ce=版本号
sudo gitlab-ctl stop unicorn puma sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=YYYYMMDD_HHMMSS
sudo gitlab-ctl restart
源服务器:
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
拷贝到新服务器相同位置,然后:
sudo gitlab-ctl reconfigure
docker exec -t gitlab gitlab-rake gitlab:backup:create
docker cp gitlab:/var/opt/gitlab/backups/xxx.tar .
恢复同理。
如果你只想要代码:
git clone --mirror old.git
git push --mirror new.git
⚠️ 会丢失:
/var/opt/gitlab/gitlab-rails/uploadssudo gitlab-rake gitlab:check
sudo gitlab-rake gitlab:doctor:secrets
❌ 版本不一致 → 恢复失败
❌ 忘记 gitlab-secrets.json → CI/Registry 失效
❌ 权限不对 → chown git:git 备份文件
如果你愿意,可以告诉我:
我可以给你精确命令。