首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清理对GitHub来说太大的git-lfs存储库

清理对GitHub来说太大的git-lfs存储库
EN

Stack Overflow用户
提问于 2021-06-18 13:31:37
回答 1查看 1.2K关注 0票数 1

我有一个具有以下结构的git存储库

代码语言:javascript
运行
复制
+ LICENSE
+ README.md
+ experiments
   + ... (large csv files stored with git-lfs)
+ reports
   + ... (pdf files stored with git-lfs)
+ demos
   + ... (small example scripts)
+ src
   + ... (main codebase)
+ tests
   + ... (unit tests)

我的工作包括运行实验,我使用git-lfs来存储实验结果,包括数据(csv-file)和结果(主要是pdf格式的数据图,pdf-演示)。

最近,我运行了一个更大的实验,并在git中添加了一个具有几千兆字节大小的csv文件。官方的git实现没有文件大小限制,所以我认为将其存储在git中是没有问题的。不过,我确实将大型csv拆分为多个小csv,因为我听说一些git实现存在文件> 3GB的问题。

无论如何,添加这个大文件结果是一个可怕的错误。一旦提交了所有内容,我就会尝试将更改推送到GitHub,并得到以下错误消息。

代码语言:javascript
运行
复制
batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.

现在,我真的不知道如何解决这个问题。我正在使用GitHub与其他人共享主代码,但是实验不需要在上面进行。所以,我的想法是把存储库分成两部分。一个包含主要代码(没有git-lfs),另一个包含实验和报告。没有必要将后者存储在github上,所以我应该很好地在本地使用它。

因此,对于github存储库,我想完全删除文件夹experimentsreports,包括它们的提交历史。我也想完全删除git-lfs。另一方面,我想为存储库的其他部分保存提交历史。

这可能吗?如果是这样的话,我会怎么做呢?我能用哪种工具?

或者,这种情况是不是太糟糕了,我最好从一个全新的存储库开始呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-18 19:52:31

这里的问题不是Git或GitHub不能处理您的存储库。简单地说,GitHub只为Git提供了1GB的免费存储,而且您已经使用过了。如果您想要存储更多的Git数据,那么您需要支付一个数据包的费用。

在Windows上,Git本身有一个限制,阻止它使用正常的污点和清洁机制来正确地在树中创建Git LFS文件,但是有解决方案,这在非Windows系统上是没有问题的。Git处理这个问题,一旦Git本身被修复,这个问题就会自动消失。

但是,通常情况下,Git存储库不适合存储代码的输出,比如二进制构件,不管是否有Git LFS。因此,您可能根本不应该将PDF输出存储在存储库中。将其存储在其他地方(例如在工件服务器或云桶上)是一个更好的主意。

您不能同时删除Git和不重写提交历史记录。为历史更改从存储库中添加或删除Git LFS需要重写存储库,因为Git LFS用引用所涉对象的小指针文件替换大型文件。如果要添加或删除Git,则Git提供git lfs migrate importgit lfs migrate export重写历史记录。

如果您想重写历史记录以完全删除这些目录,那么您将需要一个像git filter-repo这样的工具(它是一个外部工具)。如果所有的Git文件都存储在这些目录中,那么重写历史记录也会从存储库中删除Git。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68036070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档