Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当超过数据配额时,什么是最好的方法;“拆分”;这是github回购协议?_Git_Github_Quota - Fatal编程技术网

当超过数据配额时,什么是最好的方法;“拆分”;这是github回购协议?

当超过数据配额时,什么是最好的方法;“拆分”;这是github回购协议?,git,github,quota,Git,Github,Quota,我在(一个已经很大的)回购协议中添加了几个~100万个文件。在下一次添加/提交/推送时,我收到以下错误: Git LFS: (0 of 1 files) 0 B / 28.35 KB batch response: http: This repository is over its data quota. Purchase more data packs to restore access. Docs: https://help.github.com/articles/purchasing

我在(一个已经很大的)回购协议中添加了几个~100万个文件。在下一次添加/提交/推送时,我收到以下错误:

Git LFS: (0 of 1 files) 0 B / 28.35 KB   
batch response: http: This repository is over its data quota. Purchase more data packs to restore access.
Docs: https://help.github.com/articles/purchasing-additional-storage-and-bandwidth-for-a-personal-account/
error: failed to push some refs to 'https://github.com/USERNAME/REPO_NAME
如果不支付更多的数据包费用(这在我目前的预算中是不可行的,尽管我在GitHub的一个学术帐户上做研究),如何解决这个问题

也许这是一个直截了当的问题,但我一直无法在网上找到指导原则:对于用户来说,将回购协议一分为二的建议方式是什么?我怀疑人们会简单地创建一个新的repo,将这些文件移到这个位置,然后在以前的repo中删除这些文件(删除过程中的所有分支)


还有其他选择吗?这很奇怪——这些文件中的大多数都小于1MB……当然,如果有一个大文件导致了问题,那么这个过程就会简单一些

您将遇到的挑战是,如果不重写存储库的历史,您真的无法使存储库变得更小。如果您同意重写历史记录,可以使用来批量修改历史记录,例如
--索引过滤器'git rm--cached--ignore unmatch path/to/big/file'
(或者使用
--子目录过滤器
将存储库限制为单个子文件夹)

不过,我不确定您将如何清除/拆分Git LFS存储在GitHub上的文件

这很奇怪——这些文件中的大多数都小于1MB……当然,如果有一个大文件导致了问题,那么这个过程就会简单一些


如果1MB文件不可压缩且经常更改(或者只是更改了很多),则预计存储库会很快变大。

谢谢您的帮助。我有点不清楚您推荐的git命令是什么——修改我的历史记录以删除最新的命令(从而使回购再次处于限制之下),然后开始删除/移动文件的最佳方法是什么?最简单的“撤消”方法最近的提交只是执行类似于
git push-f origin master~50:master
,它将
master
向后移动50次提交(从技术上讲,向后移动50次第一个父级,如果有合并的话)。但是,即使您删除了任何较新的分支,GitHub仍然会对旧的
主文件
进行reflog引用;支持可能会有所帮助。我不确定它将如何与Git LFS一起工作,但您最好保持当前回购的原样,然后使用
过滤器分支
从拆分的部分创建新的回购。在我的案例中,问题是Git LFS既超载了数据,又跟踪了本不应该发生的回购。然而,我认为这个答案对于“太大”回购的一般问题是有用的。好吧,祝你好运——在事实发生后,让Git回购变小肯定不是小事!你是如何解决这个问题的?已通过联系GitHub支持解决。