每当我尝试进行 git pull
或 git gc
操作时,都会遇到这个错误。
warning: suboptimal pack - out of memory
Compressing objects: 100% (10955/10955), done.
fatal: Out of memory, malloc failed (tried to allocate 827101023 bytes)
error: failed to run repack
我该如何解决这个问题?
每当我尝试进行 git pull
或 git gc
操作时,都会遇到这个错误。
warning: suboptimal pack - out of memory
Compressing objects: 100% (10955/10955), done.
fatal: Out of memory, malloc failed (tried to allocate 827101023 bytes)
error: failed to run repack
我该如何解决这个问题?
这个帖子 提供了解决方案:
在适当的机器内存上运行
git repack -adf --window=memory
命令,针对该存储库进行压缩。
这基本上与 SO 问题 "Repack of Git repository fails" 的解决方案相同。
git repack -a -d --window-memory 10m --max-pack-size 20m
然而,Mark Longair会警告你:
虽然你的方法可以使本地和远程仓库都能正常工作,但当远程仓库再次打包时,会重新出现问题。
因此,设置pack.windowMemory
和pack.packSizeLimit
是更安全的解决方案,同时检查core.packedxxx
和core.deltaxxx
的配置也很重要。
对于Windows上的msysGit,这条评论提到:
git config --global pack.windowMemory 256m
对我有用(在64位Windows上出现了内存分配错误(Git-1.7.6-preview20110708.exe))
运行中
git repack -a -d --window-memory 10m --max-pack-size 20m
并没有真正解决我的问题。
移除仓库,然后再次进行 git 克隆解决了问题。