You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab已删除项目/群组仍显示在列表中如何彻底移除

GitLab 14.6.1 自托管实例残留项目/群组彻底删除方案

你遇到的是GitLab 14.x版本常见问题:前台触发删除后Sidekiq异步任务卡队列、或者实例开启了删除保护/延迟删除,导致项目标记为删除态但一直没完成清理,所有关联用户的列表都会刷出残留条目,按下面步骤操作即可彻底清理:

  • 先做前置校验排查配置问题
    • 登录所有者账号,进入残留项目的Settings > General > Visibility, project features, permissions页面,拉到最底部关闭Project deletion protection开关,保存配置。
    • 如果项目归属某个群组,进入对应群组的Settings > General > Permissions and group features页面,取消勾选Prevent project deletion选项,保存配置。
    • 用管理员账号进入后台Admin Area > Settings > General > Visibility and access controls,查看Default delayed project deletion设置,如果开启了延迟删除,可直接进入Admin Area > Projects > Pending deletion列表,找到对应残留项目点选Delete immediately跳过等待期。
  • 前台操作无效时,用Rails控制台执行硬删除(14.6.1 omnibus版本验证可用)

    操作前必须先执行全量备份,避免误操作损坏实例数据

    1. 登录部署GitLab的Ubuntu 20.04服务器,切换root权限后进入Rails控制台:
      sudo gitlab-backup create # 执行实例全量备份
      sudo gitlab-rails console
      
    2. 定位残留项目,将命令中的路径替换为你的项目实际全路径(比如群组为demo、项目名为test,路径就是demo/test):
      # 查找目标残留项目
      project = Project.find_by_full_path('替换为你的项目全路径')
      # 匹配到项目对象后直接执行硬删除
      if project
        ProjectDestroyWorker.new.perform(project.id, project.creator_id, {})
      end
      
    3. 如果是残留的空群组,执行下面的命令定位并删除,替换为实际群组路径:
      group = Group.find_by_full_path('替换为你的群组全路径')
      if group
        Groups::DestroyService.new(group.owner, {}).execute(group)
      end
      
    4. 退出Rails控制台,执行命令清理缓存、重启异常的Sidekiq服务:
      sudo gitlab-rake cache:clear
      sudo gitlab-ctl restart sidekiq
      
  • 校验清理结果
    操作完成后等待3-5分钟,所有关联账号强制刷新页面(Ctrl+F5)即可看到残留条目消失;如果还有个别账号能看到条目,让对应账号退出重登即可清掉本地会话缓存。

内容的提问来源于stack exchange,提问作者foad322

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:09:28