Git нажатие Недостаточно памяти, malloc не удалось
Я пытаюсь удалять мои изменения удаленно в GitHub, каждый раз часто git выходит из строя из-за
C:\dev\projects>git push -v
Pushing to https://[email protected]/mycompany/My-Project.git
Password for 'github.com':
fatal: Out of memory, malloc failed (tried to allocate 524288000 bytes)
fatal: write error: Invalid argument
Это очень, очень усугубляет. Я выполнил следующие команды, обновленный git (который уничтожил мои настройки и вызвал много боли, но я отвлекся)
git gc --auto --prune=today --aggressive
git repack
Я даже натолкнулся на значение
http.postbuffer
но в итоге он снова не сработает.
Это типичное приложение Rails 3.1, общий размер проекта на диске составляет 9,69 МБ.
Ответы
Ответ 1
Мой совет - попробовать несколько параметров git, связанных с пакетом:
[pack]
threads = 1
deltaCacheSize = 128m
windowMemory = 50m
Для меня было лучше установить git config pack.threads 1
и git config pack.windowMemory 50m
(по умолчанию 10 м).
Тем не менее, у моего хоста не хватило оперативной памяти (2 ГБ) и продолжало сбой. Я скопировал репо и переместил его на другую машину с большим объемом оперативной памяти (8 ГБ). Это улучшилось, но все еще не удалось.
Наконец, я загрузил последнюю версию git (https://github.com/git/git), скомпилировал ее и установил. Это устранило проблему, просто запустив git repack -adf
с теми же параметрами. После этого я запустил git gc --aggressive --prune=now
Как только я получил репо, зафиксированное на моем локальном компьютере, я нажал его, чтобы переустановить удаленное репо, git push -f origin master
.
Чтобы избежать подобных ошибок в будущем, попробуйте не добавлять ненужные большие файлы в репо (в моем случае я получил дамп SQL 3.5GB:)) и отключить дельта-сжатие для больших файлов (например, изображений, PDF файлов, видеороликов). Добавьте следующие строки в .gitattributes
:
*.pdf -delta
*.jpg -delta
Ответ 2
Вы можете попробовать изменить конфигурацию для repack с помощью
git config --global pack.windowMemory 256m
Ответ 3
Используйте это:
git gc --auto --prune=today --aggressive
git repack
git config --global http.postbuffer 524288000
git config --global pack.windowMemory 256m
Его исправления для меня.
Ответ 4
У меня была такая же проблема, и после изменения некоторых параметров до 1024 м проблема не сохранялась:
[pack]
threads = 1
deltaCacheSize = 1024m
packSizeLimit = 1024m
windowMemory = 1024m
[core]
packedGitLimit = 1024m
packedGitWindowSize = 1024m
Я думаю, что проблема связана с свободной оперативной памятью вашего ПК.
Шахта была довольно занята, и после ее перезагрузки я мог, наконец, внести изменения.
Надеюсь, что это поможет.
Ответ 5
для тех, кто использует gitlab и видит эту ошибку
найдите gitlab config (/etc/gitlab/gitlab.rb)
измените значение gitlab_rails ['git_max_size'] (на большее значение)
затем: gitlab-ctl перенастроить, чтобы обновить
Ответ 6
я удалил эти настройки в файле .gitconfig:
[http]
postbuffer = 524288000
[pack]
windowMemory = 1024m
deltaCacheSize = 1024m
packSizeLimit = 1024m
и нажатие снова запустилось
Ответ 7
Если вы находитесь в Gitlab, найдите репо, которое вызывает проблему на удаленном сервере.
Gitlab хранит репозитории в этом месте
/var/opt/gitlab/git-data/repositories
Найдите каталог и запустите эту команду.
git repack -a -f -d
Готово.
Ответ 8
У меня была та же проблема на AWS t2.small. Также работает сонар. Я выключил Sonar, чтобы освободить память, проверил и перезапустил Sonar. Я увеличу размер экземпляра.
Ответ 9
В моем случае это не имело никакого отношения к клиентской машине. Это произошло со мной, потому что память сервера, на котором работает GitLab, пошла полным ходом. Я увеличил память этой виртуальной машины, и проблема была решена.
Ответ 10
Проверьте, включена ли своп в вашем поле.
$free -m
total used free shared buffers cached
Mem: 494 339 154 33 0 60
-/+ buffers/cache: 278 216
Swap: 2047 40 2007
Если нет, вы можете создать его. Я попробовал это руководство для ubuntu, которое также работает и для Debian. Но должно быть много учебников по этому вопросу.
Ответ 11
Для меня проблема была также в том, что на сервере недостаточно памяти, в отличие от клиента. У меня есть чувство, что у клиента проблема, если это происходит во время проверки, и может возникнуть проблема с сервером, если это происходит при нажатии кнопки вверх.
Ответ 12
git repack
git config --global http.postbuffer 524288000
git config --global pack.windowMemory 256m
Это исправлено для меня. и делай мерзавец после него.
Ответ 13
У вас может быть только один или несколько действительно больших файлов. Проверьте файлы размером более 50 МБ, что является нормальным пределом github:
find . -type f -size +50M
Ответ 14
Я столкнулся с одной и той же проблемой, я пробовал все предложения, но то, что решило ситуацию, перезапустило компьютер... И затем я мог нажать.