Иногда при работе с git через http возникает ошибка The remote end hung up unexpectedly
. Это может обозначать одну из нескольких проблем. Одна из проблем – размер репозитория больше максимально допустимого размера будефа POST. Рассмотрим решение данной проблемы.
Вывод о данной ошибке выглядит примерно следующим образом:
Counting objects: 7928, done. Delta compression using up to 12 threads. Compressing objects: 100% (7834/7834), done. Writing objects: 100% (7928/7928), 204.43 MiB | 97.40 MiB/s, done. Total 7928 (delta 968), reused 1 (delta 0) error: RPC failed; result=22, HTTP code = 413 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date
Итак, первый вариант решения данной проблемы состоит в увеличении буфера данных POST запроса.
В первую очередь необхожимо узнать размер данных. В приведенном выше примере вывода размер равен 204.43 МБ. К этому числу добавим небольшой запас (например, до 250 МБ) и переведем все в байты. 250 МБ = 250 * 1024 * 1024 = 262144000 КБ. Задаем полученное значение в настройки git.
1
|
git config http.postBuffer 262144000 |
Этой командой мы выставили значение для конкретного репозитория, если необходимо применить данную настройку глобально, то необходимо добавить флаг –global:
1
|
git config - -global http.postBuffer 262144000 |
Если ваш сервер для хранения git репозиториев имеет максимальный размер тела запроса меньше заданного размера, то необходимо перенастроить web-сервер (если есть такая возможность). Для этого необходимо изменить значение client_max_body_size
(для nginx) или LimitRequestBody
(для apache) и перезагрузить сервис (service nginx reload
или service apache2 reload
соответственно). Если сервер не аш и нет возможности его сконфигурировать, то остается вариант номер 2.
Второй вариант заключается в переходе с протокола http на ssh. Вам будет необходимо изменить адрес удаленного репозитория с помощью команды git remote set-url
:
1
|
git remote set -url origin git@example.com:user/repository.git |
Вот мы рассмотрели два пути решения ошибки The remote end hung up unexpectedly
. Вероятно есть другие причины возникновения данной ошибки и иные пути решения. Эта статья не охватывает все возможные варианты, но надеюсь, что она вам помогла.