如何从 gitlab 中完全删除提交?
Posted
技术标签:
【中文标题】如何从 gitlab 中完全删除提交?【英文标题】:How to completely remove a commit from gitlab? 【发布时间】:2018-09-13 20:17:36 【问题描述】:我在我的 git 存储库中提交并推送了它,但不小心它包含了我们生产机器的一些密码。所以我删除了提交:
git reset --hard HEAD~1
git push --force
这确实从提交列表中删除了提交,但是 gitlab 上提交的 url 仍然显示了提交的来源。
我不确定这是仍然将提交内容保存在 gitlab 服务器上的 git,还是以某种方式存储提交内容的 gitlab 数据库,但我确实需要从 gitlab 中完全删除该提交服务器。
有人知道从 gitlab 中完全删除提交及其内容的方法吗?
【问题讨论】:
这可能不言而喻,但请务必更改这些密码。 我不知道 GitLab 是否保留副本。 Git 会保留提交,直到它被垃圾收集。您可以触发早期垃圾收集。看看在服务器上的 repo 中运行git gc --prune=now
是否有帮助。
看this
【参考方案1】:
您可能应该从查看 GitLab 存储库的 Web 界面开始。如果分支在那里,您可以通过运行将其删除
git push <remote> :<branch>
这将在指定的远程将<branch>
替换为冒号之前的内容,即没有内容。
如果您无法使用 Web 界面检查分支是否在远程,您应该能够获取所有分支,或者至少使用一些 git fetch
之类的命令列出它们,不知道如何。
如果分支未在远程列出,则您只有远程的本地副本,您应该能够删除该副本,例如,
git branch -D <remote>/<branch>
我不能代表 GitLab 的内部结构,所以我不能保证如果你这样做会破坏数据,所以你应该按照已经建议的那样替换所有密码。
【讨论】:
以上是关于如何从 gitlab 中完全删除提交?的主要内容,如果未能解决你的问题,请参考以下文章