我克隆了一个大型回购并且出错(经过多次尝试)
克隆成功,但结帐失败
尝试使用
解决此问题git checkout -f HEAD
错误回来了
致命:内存不足,realloc failed2
我已经设置了一些内存限制,因为克隆也会因设置
而遇到问题git config pack.WindowMemory 256m && git config pack.packSizelimit 256m
根据以下来自Punit Vara(下文)的建议,我还将.git / config编辑为:
[core]
packedGitLimit = 128m
packedGitWindowSize = 128m
[pack]
deltaCacheSize = 128m
packSizeLimit = 128m
windowMemory = 128m
我尝试将这些值更改为:128m,256m,512m,1024m。这不适合我。我仍然得到同样的错误,似乎出现在41%。
任何人都有这方面的经验或任何想法出错的原因和/或可以采取哪些措施来解决这个问题?谢谢。
答案 0 :(得分:5)
我的服务器更新到64Bit架构后,遇到了同样烦人的问题。 git的操作系统内存限制为600米。
core.preloadIndex = false
终于为我做了伎俩。自git 2.1版以来它默认为true
答案 1 :(得分:1)
我收到此错误消息:"致命:内存不足,realloc失败2
"在尝试使用git add --all
时。 原因是我尝试添加一个非常大的csv文件(> 1.6 GB)。 Git / Github不允许上传这么大的文件。作为解决方案,您可以将文件放在gitignore上或将文件移动到另一个未连接到git的目录。
答案 2 :(得分:0)
试试这个:
git gc --auto --prune=today --aggressive
git repack
git config --global http.postbuffer 524288000
git config --global pack.windowMemory 256m
答案 3 :(得分:0)
设置以下参数以解决此问题:
<强>
$hint .= ", $name";
强>在单个映射操作中映射到内存的pack文件的字节数。较大的窗口大小可能允许您的系统更快地处理较少数量的大包文件。较小的窗口大小会对操作系统内存管理器的调用增加产生负面影响,但在访问大量大包文件时可能会提高性能。
如果在编译时设置了NO_MMAP,则默认为 1 MiB ,否则32位平台上为32 MiB,64位平台上为1 GiB。 这对所有用户/操作系统都应该是合理的。您可能不需要调整此值。
<?php if ($q !== "") { $q = strtolower($q); $len=strlen($q); $found = array(); foreach($a as $name) { if (stristr( substr($name, 0, $len),$q)) { array_push($found, $name); } } print_r($found); } ?>
从包文件同时映射到内存的最大字节数 如果Git需要一次访问超过这么多字节来完成操作,它将取消映射现有区域以回收进程中的虚拟地址空间。
在32位平台上默认为 256 MiB ,在64位平台上默认为8 GiB 除了最大的项目外,这对所有用户/操作系统都应该是合理的 您可能不需要调整此值。
core.packedGitWindowSize
强> 以下是我可以想到并且可能与您的案例相关的配置值的完整列表:
core.packedGitLimit