Подтвердить что ты не робот

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 МБ.

4b9b3361

Ответ 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

Я столкнулся с одной и той же проблемой, я пробовал все предложения, но то, что решило ситуацию, перезапустило компьютер... И затем я мог нажать.