我试图将我的更改远程推送到GitHub,因为每次git都失败了
C:\dev\projects>git push -v
Pushing to https://user@github.com/mycompany/My-Project.git
Password for 'github.com':
fatal: Out of memory, malloc failed (tried to allocate 524288000 bytes)
fatal: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud)
这非常非常恶化.我已经运行了以下命令,升级了git(它消除了我的设置并引起了很多痛苦,但我离题了)
git gc --auto --prune=today --aggressive
git repack
Run Code Online (Sandbox Code Playgroud)
我甚至碰到了价值
http.postbuffer
Run Code Online (Sandbox Code Playgroud)
但最终它会再次失败.
这是典型的Rails 3.1应用程序,磁盘上的总项目大小为9.69 MB.
Die*_*ino 30
我的建议是尝试几个与pack相关的git参数:
[pack]
threads = 1
deltaCacheSize = 128m
windowMemory = 50m
Run Code Online (Sandbox Code Playgroud)
对我来说更好的结果是设置git config pack.threads 1和git config pack.windowMemory 50m(默认为10米).
尽管如此,我的主机没有足够的RAM内存(2GB)并且仍然失败.我很难复制repo并将其移动到另一台具有更多RAM(8GB)的机器上.它变得更好但仍然失败了.
最后,我下载了最新版本的git(https://github.com/git/git),编译并安装它.这只是通过运行git repack -adf相同的参数来解决问题.之后我跑了git gc --aggressive --prune=now
一旦我在我的本地机器上修复了回购,我就把它推到掌握,覆盖了远程仓库git push -f origin master.
为了防止将来出现类似错误,请尽量不要在repo中添加不必要的大文件(在我的情况下,我得到了3.5GB的SQL转储:))并禁用大型文件(如图像,PDF,视频)的增量压缩.将以下行添加到.gitattributes:
*.pdf -delta
*.jpg -delta
Run Code Online (Sandbox Code Playgroud)
ral*_*nja 22
您可以尝试更改重新包装的配置
git config --global pack.windowMemory 256m
Run Code Online (Sandbox Code Playgroud)
Kna*_*ase 14
用这个:
git gc --auto --prune=today --aggressive
git repack
git config --global http.postbuffer 524288000
git config --global pack.windowMemory 256m
Run Code Online (Sandbox Code Playgroud)
它修复了我.
我遇到了同样的问题,将一些参数更改为1024m后,问题仍然存在:
[pack]
threads = 1
deltaCacheSize = 1024m
packSizeLimit = 1024m
windowMemory = 1024m
[core]
packedGitLimit = 1024m
packedGitWindowSize = 1024m
Run Code Online (Sandbox Code Playgroud)
我认为该问题与PC的可用RAM内存有关。
我的很忙,重新启动后,我终于可以推送更改了。
希望能帮助到你。
小智 5
对于使用 gitlab 并看到此错误的人
找到 gitlab 配置(/etc/gitlab/gitlab.rb)
更改gitlab_rails['git_max_size']的值(更改为更大的值)
然后:gitlab-ctl重新配置刷新
| 归档时间: |
|
| 查看次数: |
52230 次 |
| 最近记录: |