温馨提示×

debian gitlab如何迁移仓库

小樊
46
2026-09-05 14:28:10
栏目: 智能运维

在 Debian 上迁移 GitLab 仓库通常有几种方式,取决于你是整体迁移 GitLab 服务,还是只迁移某个仓库。下面按常见场景说明。


一、整体迁移 GitLab(服务器级迁移,推荐)

适用于:换服务器、系统重装、版本升级后保留数据。

1. 在旧服务器上备份

sudo gitlab-rake gitlab:backup:create

生成的备份文件在:

/var/opt/gitlab/backups/

文件名类似:

1234567890_2024_01_01_gitlab_backup.tar

2. 拷贝备份文件到新服务器

scp /var/opt/gitlab/backups/*.tar root@new-server:/var/opt/gitlab/backups/

3. 新服务器安装相同版本 GitLab

# 查看旧版本
cat /opt/gitlab/version-manifest.txt

新服务器安装相同版本的 GitLab(非常重要)。

4. 恢复备份

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 全部恢复。


二、只迁移单个仓库(轻量级)

适用于:只想要代码和提交记录。

方法 1:git clone --mirror(最常用)

git clone --mirror git@old-gitlab.com:group/project.git
cd project.git
git push --mirror git@new-gitlab.com:group/project.git

✅ 保留:

  • 分支
  • Tag
  • 提交历史

❌ 不包含:

  • Issue
  • Merge Request
  • Wiki(需单独迁移)

方法 2:GitLab 自带 Export / Import

  1. 旧 GitLab:
    • 项目 → Settings → General → Advanced → Export
  2. 下载 .tar.gz
  3. 新 GitLab:
    • New Project → Import project → GitLab export

✅ 包含:

  • 代码
  • Issue
  • MR
  • Wiki
  • CI 配置

三、Docker 版 GitLab 迁移(补充说明)

如果是 Docker 部署:

docker exec -it gitlab gitlab-rake gitlab:backup:create

备份目录映射到宿主机:

/srv/gitlab/data/backups

四、常见问题

  • 版本不一致:恢复会失败
  • 权限问题:确保 /var/opt/gitlab/backups 属主正确
  • 大仓库:使用 --mirror 更稳定

如果你能告诉我:

  • Omnibus / Docker / 源码
  • 整站迁移 还是 单个项目

我可以给你更精确的命令。

0