减少历史Git对象

减少历史Git对象,git,Git,我有一个Bitbucket存储库,其中回购规模限制为2.0 GB。我创建了一个.gitignore,但是忘记了添加下载/文档,因此repo变成了8.3gb 在我看到Bitbucket上的通知后,我迅速跑开了 $ git rm -r /path/to/docs 在执行了通常的git addetc.命令之后,我得到了这个推送错误: 存储库处于只读模式(超过2 GB大小限制) 了解如何减少存储库大小:.致命:无法从远程存储库读取 请确保您具有正确的访问权限,并且存储库存在 这让我使用了以下命令: $

我有一个Bitbucket存储库,其中回购规模限制为2.0 GB。我创建了一个
.gitignore
,但是忘记了添加下载/文档,因此repo变成了8.3gb

在我看到Bitbucket上的通知后,我迅速跑开了

$ git rm -r /path/to/docs
在执行了通常的
git add
etc.命令之后,我得到了这个推送错误:

存储库处于只读模式(超过2 GB大小限制)

了解如何减少存储库大小:.
致命:无法从远程存储库读取

请确保您具有正确的访问权限,并且存储库存在

这让我使用了以下命令:

$ du -sh project-root/
这将返回:

6.0G项目根目录

这有点令人担忧,因为我刚刚删除了所有的文档,不可能有那么大。所以我跑了:

$ du --max-depth=10 -h project-root | sort -n -r
最突出的目录是:

5.7G    project-root/.git/objects/pack
5.7G    project-root/.git/objects
5.7G    project-root/.git
反过来,我运行了
git gc
——但这没有任何效果(或者至少在大小方面)


那么,如何减小
.git/objects
目录的大小呢?我想这个大小是由大型文档文件夹造成的,但现在它们不见了。那么,我如何“清理”我的git对象呢?

如果没有按下任何按钮,请遵循以下建议:使用额外的
git gc
标志进行更积极的修剪

您可以重写存储库历史记录并删除不应提交的大型文件。这在中进行了解释,并建议:

BFG是git filter分支的一种更简单、更快的替代方法,用于从git存储库历史记录中清除坏数据:

  • 删除疯狂的大文件
  • 删除密码、凭据和其他私有数据

您应该使用
git reset--hard
,它只保留提交的文件,或者使用
git clean-d-x-f
删除未跟踪的文件,包括目录(-d)和被git(-x)忽略的文件


看看:


致以最良好的祝愿


Brhaka

我应该提到^^^已经完成重置:)但是还没有完成清理,我会让你知道它是如何完成的goes@phd此外,各种搜索词链接对帖子或SO社区都没有建设性——对我来说,它们只是对象,我根本不会搜索历史。@phd我一定点击了其他链接,认为这是你的傻瓜-因为我在再次点击时没有认出任何答案xD,无论哪种方式,被接受的答案都是正确的-就像我在这篇帖子上接受的一样:)是的,这很有效,链接的傻瓜进入了一点,两个答案都很好,所以将您的标记为已接受:)您需要运行BFG吗?或者说,使用git gc已经足够了吗?nah必须使用BFG-在发布这个Q之前,我运行了reset+gc几次,但它什么也没做,所以BFG在引擎盖下做的任何事情都可以:)