gitlab怎么删除项目:网页、CLI、API三种方案
gitlab怎么删除项目,主流有网页端图形操作、glab命令行工具、RESTAPI调用三种方式,网页端适合单次手动操作,需要项目Owner权限,GitLab.com默认标记待删除后等待30天才会永久清除,等待期内支持恢复,私有化部署实例管理员可以修改保留时长;CLI和API适合批量、自动化场景,API方式如果携带permanently_remove参数,在实例配置允许时可以跳过等待周期直接清除,只读、开发者、维护者角色都没有删除权限,仅Owner和实例管理员可执行删除动作,归档项目不等于删除项目,归档后代码和记录仍然保留,只是不再接受新提交。
gitlab怎么删除项目:网页端操作流程
进入目标项目主页,在左侧侧边栏找到设置,点开通用选项卡,页面向下滚动找到高级模块并展开,模块底部会出现删除项目按钮,点击后弹窗要求输入项目全名做二次校验,输入完成确认提交。提交成功后项目进入待删除队列,GitLab.com固定30天延迟删除,私有化部署实例管理员可以在后台把保留周期设置在1到90天区间内。等待删除的项目依然可以被项目Owner检索到,进入项目页面右上角操作菜单,选择恢复项目,就能撤销本次删除标记。
权限不达标,按钮不会显示。
gitlab怎么删除项目:CLI与API操作方式
glab是GitLab官方配套命令行工具,安装完成并完成登录授权后,在项目本地目录执行glabrepodelete,工具会读取当前仓库绑定的项目地址,弹出确认提示后完成标记删除;你也可以手动指定命名空间和项目名称,命令格式为glabrepodelete组名/项目名,适合在CI脚本或者本地批量清理少量项目。API方式需要提前生成个人访问令牌,令牌必须勾选api权限范围,请求地址格式为你的GitLab地址/api/v4/projects/项目ID,请求方法为DELETE,请求头携带PRIVATE-TOKEN字段写入令牌,请求体增加permanently_remove:true参数时,在实例开放即时删除权限的前提下直接永久清除,不会进入30天等待窗口。
| 操作方式 | 适用场景 | 是否默认延迟删除 | 即时删除条件 |
|---|---|---|---|
| 网页端UI | 单次手动清理、临时删除 | 是 | 标记待删后由Owner手动执行永久删除 |
| glabCLI | 本地脚本、少量批量 | 跟随实例配置 | 依赖实例后台开关 |
| RESTAPI | 自动化流水线、大规模批量 | 是 | 传参permanently_remove且实例允许 |
删除动作会同步清除项目内全部资源,包含Git代码仓库、议题、合并请求、流水线记录、制品文件、Wiki文档、项目访问令牌以及所有自定义配置,等待删除阶段的项目数据依旧占用存储空间,不会立刻释放容量,很多用户误以为提交删除之后存储占用马上下降,这是常见错误认知。
实例管理员可以在后台开启权限限制开关,开启之后,普通项目Owner不再拥有删除权限,只有管理员账号能够发起删除操作,这个配置在管理中心-设置-可见性与访问控制模块内调整,团队内部多协作项目建议开启该限制,降低误删风险。
归档操作可以作为删除的替代方案,归档后的项目无法新建分支、提交代码、创建议题和合并请求,所有历史数据完整保留,随时可以取消归档恢复使用,适合不再迭代但需要留存历史记录的项目,归档不需要等待周期,也不存在数据清除风险,权限同样要求Owner级别。
项目被转移到其他分组之后,你的角色会同步变更,如果转移之后你不再是Owner,之前提交的待删除标记会失效,项目不会自动完成清除,需要新分组下的Owner重新发起删除流程。
等待删除周期结束并且永久清除之后,项目数据无法找回,GitLab官方文档没有提供任何底层数据恢复通道,你只能依靠自己提前备份的仓库镜像、导出归档文件找回代码和工单信息。
