error: Out of memory, malloc failed

今天使用git pull时出现了如上提示,从最后一句“Already up to date”应该可以看出来,git pull这个操作本身是成功了的,看起来是pack操作失败了,原因就是内存溢出了。尝试找组内同事看过,他们并不会出现跟我相同的错误提示,说明应该跟我最近的某些操作相关。

乍一看有点懵,git pull也能出错,简单梳理了后,有几个疑问

1. 是因为什么引发了这个溢出

2. pack操作到底是做什么

3. 要怎么解决

搜索“Auto packing the repository in background”可以找到这篇文章,文字不多感觉说的挺有用的https://www.cnblogs.com/yuzhaoblog/p/12377718.html

  • 从这里我大概知道了,删除分支或者清空stash会导致这个问题发生,而我最近刚刚大量做了这些操作。所以问题诱因应该找到了,所以我理所应当的执行了一遍这两条命令,“git gc --prune=now”执行看起来应该是失败了,这条命令同样报了Out of Memory。但是执行完后我并没有及时去查看pack文件夹,这是失误。

后面从一个stackOverFlow的解答上面找到了这个https://stackoverflow.com/questions/10292903/git-on-windows-out-of-memory-malloc-failed

从这句话能大概找到后两个问题的答案,“Disable delta compression globally. For this you have to set pack.window to 0. Of course this will make the repository much larger on disc” 

  • pack操作就是一个全局的增量压缩操作,关闭这个功能会导致代码仓库占用更大磁盘控件。
  • 要想关闭这个特性,就可以设置pack.window = 0,我当然也照做了,在做这个之前我还有一次切换分支的操作。

做完以上操作后,我重启我的SourceTree,再次git pull时就发现一切正常了,我去“.git/objects/pack”下面去看的时候,发现原来满满当当的目录就只剩下零散的几个文件了。当这时我把 “[pack] window=0” 从config中删除,再想回到过去,追寻问题本质时,那些被删除的pack已回不来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值