从Gitlab合并请求中删除意外推送的数据

从Gitlab合并请求中删除意外推送的数据,git,gitlab,Git,Gitlab,问题很简单:一个人将一些不必要的(可能是私人的)信息推送到Gitlab上的origin。我需要把它取下来 我知道如何在git中改变历史,以及如何让它成为我想要的样子。因此,我实际上清理了历史并强制将其推到原点 但是问题是,有一个针对这个分支的合并请求,它收集这个分支的所有推送版本(包括这个不必要的信息)。所以我决定删除这个合并请求。这不是一项简单的任务(不能通过GUI完成),但经过一些搜索后,我发现这可以通过Gitlab API完成,如下所示: curl--request DELETE--hea

问题很简单:一个人将一些不必要的(可能是私人的)信息推送到Gitlab上的
origin
。我需要把它取下来

我知道如何在git中改变历史,以及如何让它成为我想要的样子。因此,我实际上清理了历史并强制将其推到
原点

但是问题是,有一个针对这个分支的合并请求,它收集这个分支的所有推送版本(包括这个不必要的信息)。所以我决定删除这个合并请求。这不是一项简单的任务(不能通过GUI完成),但经过一些搜索后,我发现这可以通过Gitlab API完成,如下所示:
curl--request DELETE--header“PRIVATE-TOKEN:9koXpg98eAheJpvBs5tK”https://gitlab.example.com/api/v4/projects/4/merge_requests/85
(看)

之后,我在Gitlab上的项目设置中运行了“内务管理”,该设置应该进行垃圾收集,但存储库大小并没有改变。我检查了,是-错误提交仍然可以通过
https://gitlab.com//commit/
。因此,似乎还有其他东西不允许删除这些提交

我应该做些什么来防止可能的私有信息泄漏,并将存储库从
源代码
的~130MB压缩到本地
.git/
~30MB

另外,我知道创建新项目并导入旧项目的硬核解决方案——这不是我想要的

p.p.S.我使用Gitlab托管的服务器,所以我不能(或者我可以?)打开ssh控制台并手动删除一些文件/数据库入口


UPD。通过API,我得到了
origin
commits()的列表。错误提交不在此列表中,因此此列表应与我的本地提交列表相同。

确定。我已经说过我以前的尝试。此外,我还尝试了本地
gc
reset--hard HEAD^&push-f
技巧,答案如下:

几天后(我不知道什么时候),我的回购规模变成了37Mb! 虽然通过直接链接到提交后,我仍然能够得到所有这些清除的文件。 所以这只是部分解决方案,但我决定将其发布在这里,供感兴趣的人参考。
另外,我不知道实现这个部分解决方案需要哪些步骤,哪些步骤不是。

好的。我已经说过我以前的尝试。此外,我还尝试了本地
gc
reset--hard HEAD^&push-f
技巧,答案如下:

几天后(我不知道什么时候),我的回购规模变成了37Mb! 虽然通过直接链接到提交后,我仍然能够得到所有这些清除的文件。 所以这只是部分解决方案,但我决定将其发布在这里,供感兴趣的人参考。
此外,我不知道实现此部分解决方案需要哪些步骤,哪些步骤不是。

除了重新创建存储库之外,您只能在强制过期的情况下运行gc,如中所示。不知道是否有可能调整这些值gitlab@poke这不是链接文件的副本question@max630“你说得对,我的坏蛋。”max630,我试过这么做。目前看来没有结果,但可能Gitlab还没有完成垃圾收集。除了重新创建存储库之外,您只能像中一样在强制过期的情况下运行gc。不知道是否有可能调整这些值gitlab@poke这不是链接文件的副本question@max630“你说得对,我的坏蛋。”max630,我试过这么做。目前看来还没有结果,但也许Gitlab还没有完成垃圾收集。