如何彻底移除GitLab中含敏感信息的旧提交记录?
彻底删除GitLab中无引用的敏感提交
步骤1:确认敏感提交的哈希值
先获取B、C、D这几个提交的完整40位十六进制哈希值:
- 从活动记录的旧推送记录中点击进入对应提交,复制页面URL里的提交哈希;
- 若本地仓库还保留旧分支,执行
git log命令查看这些提交的哈希。
步骤2:移除所有对敏感提交的引用
GitLab的垃圾回收只会清理无任何引用的对象,所以要先确保没有地方关联这些提交:
- 删除关联标签:进入项目「仓库」→「标签」,找到指向敏感提交的标签并删除;
- 清理合并请求:关闭并删除所有引用过旧分支的未合并MR,避免MR保留提交引用;
- 删除相关流水线:在「CI/CD」→「流水线」中移除旧分支对应的流水线记录,部分版本中流水线会关联提交对象。
步骤3:手动触发GitLab仓库垃圾回收
GitLab默认定期执行垃圾回收,手动触发可立即清理无引用的敏感提交:
- 进入GitLab项目的「设置」→「仓库」;
- 滚动到「高级」区域,找到「立即垃圾回收」选项;
- 点击「立即执行」,等待操作完成。
执行完成后,活动记录中指向敏感提交的链接会失效,无法再访问这些提交内容。
步骤4:通知协作者同步操作
若其他协作者克隆过包含敏感提交的仓库,需通知他们:
- 放弃本地旧分支,重新克隆仓库;
- 若本地有未推送的修改,将修改Cherry-pick到新分支后再推送,避免重新引入敏感提交。
内容的提问来源于stack exchange,提问作者Rabid
相关产品推荐
相关产品推荐

