繁体   English   中英

在git中提交后损坏大文件

[英]Large file corrupted after commit in git

我在Windows上创建了一个新的git存储库。 然后添加并提交一个9.8 GB的zip文件。 .git目录只有1.21 GB。 当我签出该文件时,大小仅为1.44 GB。

据我所知,git没有文件大小限制。 git是否损坏或存在一些限制? 我正在使用最新的稳定版本(2.13.0)。

编辑 - 实际大小限制的修订估算

我可以确认,尝试使用git 1.12.0.windows.1在Windows上提交多GB的二进制文件时,我得到了损坏的打包文件。 我能够提交和检索类似大小的ascii文件,而没有任何已报告的错误,但检出的文件显然已损坏(据我所知被截断了)。

btw,“据我所知”,因为diff (来自bash环境)无法正确处理较大的文件。 它开始起作用的截止频率似乎在2-4GB范围内。 (也就是说,大约2GB的文件可以正常工作-既可以使用git也可以使用diff。使用大约4GB的文件则不能。)

这表明至少某些处理文件的进程具有32位限制。 从git的角度来看,我认为这个问题是环境问题-即git依赖的lib或实用程序的限制。

因此,我可以得出结论,至少在Windows系统上, 实际上 4GB可能是文件大小的限制。 (特别是我的Windows安装是64位;因此我怀疑操作系统本身不是问题。但是我也不认为git程序本身就是问题。)

冒着酸味葡萄的风险:为什么要按照自己的描述去做? 即使没有失败,git也不会以任何有用的方式处理〜10GB的zip文件。 大型二进制文件不在git的操盘库中。

您可以尝试使用git lfs 它有助于解决git在处理大型二进制文件时遇到的几个问题(尽管如果它们确实来自环境,它可能会受到相同的32位限制的影响)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM