在 Linux 上运行的 GitLab(无论是 Omnibus 安装还是 Docker/K8s),常见“回滚”场景和对应做法如下。请先对照你属于哪种情况。
cat /opt/gitlab/version-manifest.txt
# 或
gitlab-rake gitlab:env:info
# CentOS / RHEL
yum list installed | grep gitlab
# 或
rpm -qa | grep gitlab
# Ubuntu / Debian
dpkg -l | grep gitlab
# CentOS
yum install gitlab-ee-16.7.2-ee.0.el7.x86_64
# Ubuntu
apt install gitlab-ee=16.7.2-ee.0
⚠️ 强烈建议先备份
gitlab-backup create
备份路径默认:
/var/opt/gitlab/backups/
# 停止服务
gitlab-ctl stop
# 降级
yum downgrade gitlab-ee-旧版本
# 或 apt install gitlab-ee=旧版本
# 重新配置
gitlab-ctl reconfigure
gitlab-ctl restart
git revert <commit_id>
git push origin main
✅ 安全,不改变历史
git reset --hard <commit_id>
git push -f origin main
⚠️ 危险操作
# 停止相关服务
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
# 恢复
gitlab-backup restore BACKUP=timestamp_gitlab_backup.tar
# 重启
gitlab-ctl reconfigure
gitlab-ctl restart
docker ps
docker images | grep gitlab
docker pull gitlab/gitlab-ee:16.7.2-ee.0
docker stop gitlab
docker rm gitlab
docker run -d \
--name gitlab \
-v gitlab-config:/etc/gitlab \
-v gitlab-logs:/var/log/gitlab \
-v gitlab-data:/var/opt/gitlab \
gitlab/gitlab-ee:16.7.2-ee.0
⚠️ 数据卷不变,只换 GitLab 版本
gitlab-ctl stop 后回滚我可以直接给你精确命令,只需说明:
例如:
“Omnibus 安装,16.9 回滚到 16.7,CentOS 7”