如何在gitlab上清除远程回购中的历史记录

如何在gitlab上清除远程回购中的历史记录,git,Git,我的前同事在一个项目回购上放了很多二进制文件 因此,目前回购规模约为20GB。巨大得吓人 是否有其他方法可以在不创建新回购的情况下减少回购规模 我可以接受放弃那些二进制文件 谢谢您可以重写任何包含有问题的二进制文件的提交,然后使用重写的历史强制更新远程存储库 从远程存储库中提取错误提交的任何人都需要知道更改,以便能够更新其本地repo以与新历史保持一致 重写历史的命令是 请注意,文档中有一些关于使用此命令的警告,您应该认真对待。重写历史记录不应轻易完成,在强制更新远程存储库之前,应验证结果是否

我的前同事在一个项目回购上放了很多二进制文件

因此,目前回购规模约为20GB。巨大得吓人

是否有其他方法可以在不创建新回购的情况下减少回购规模

我可以接受放弃那些二进制文件


谢谢

您可以重写任何包含有问题的二进制文件的提交,然后使用重写的历史强制更新远程存储库

从远程存储库中提取错误提交的任何人都需要知道更改,以便能够更新其本地repo以与新历史保持一致


重写历史的命令是

请注意,文档中有一些关于使用此命令的警告,您应该认真对待。重写历史记录不应轻易完成,在强制更新远程存储库之前,应验证结果是否正确

此外,当您强制更新远程存储库时,您需要确保从您开始重写历史记录到您准备更新远程存储库期间,没有人向它推送任何内容。在你开始之前,你应该告诉每个人你在做什么,他们不应该推动任何事情。或者,您也可以直接关闭远程存储库

在您的历史记录重写完成并且远程存储库更新后,需要更新到新历史记录的用户可以通过
git stash
将他们的工作进行更新,获取新的历史记录,然后将他们尚未推送的任何提交重新设置到新的历史记录上,最后取消他们的工作



在尝试执行此操作之前,您可能会发现进一步了解git的工作原理非常有用。有一个可用的存储库可以很好地覆盖它。

必须重写整个历史,这就像创建一个新的存储库一样有效。