Быстрое решение:
С такой ошибкой я обычно начинаю с увеличения postBufferразмера на:
git config --global http.postBuffer 524288000
(некоторые комментарии ниже сообщают о необходимости удвоить значение):
git config --global http.postBuffer 1048576000
Больше информации:
От git configстраницы человека , http.postBufferо:
Максимальный размер в байтах буфера, используемого интеллектуальными HTTP-транспортами при отправке данных в удаленную систему.
Для запросов, превышающих этот размер буфера, HTTP / 1.1 и Transfer-Encoding: chunkedиспользуется, чтобы избежать локального создания массивного файла пакета. По умолчанию 1 МБ, что достаточно для большинства запросов.
Даже для клона это может иметь эффект, и в этом случае OP Joe сообщает:
[клон] теперь работает нормально
Примечание: если что-то пошло не так на стороне сервера, и если сервер использует Git 2.5+ (Q2 2015), сообщение об ошибке может быть более явным.
См. « Клонирование Git: удаленный конец неожиданно завис, попытался изменить, postBufferно все еще не работает ».
Кулай ( в комментариях ) указывает на эту страницу Git для устранения неполадок Atlassian , которая добавляет:
Error code 56указывает на получение скручивания, ошибка, CURLE_RECV_ERRORозначающая, что возникла какая-то проблема, препятствовавшая получению данных в процессе клонирования.
Обычно это вызвано сетевыми настройками, брандмауэром, VPN-клиентом или антивирусом, который завершает соединение до того, как все данные были переданы.
Здесь также упоминается следующая переменная среды, чтобы помочь с процессом отладки.
# Linux
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
С Git 2.25.1 (февраль 2020 г.) вы узнаете больше об этом http.postBuffer«решении».
Смотрите коммит 7a2dc95 , коммит 1b13e90 (22 января 2020 г.) по Брайану м. Карлсон ( bk2204) .
(Объединено с Junio C Hamano - gitster- в коммите 53a8329 , 30 января 2020 г.)
( обсуждение списка рассылки Git )
docs: упоминание при увеличении http.postBuffer является ценным
Подписано: Брайан М. Карлсон
Пользователи в самых разных ситуациях сталкиваются с проблемами HTTP push.
Часто эти проблемы связаны с антивирусным программным обеспечением, фильтрацией прокси-серверов или другими ситуациями «человек посередине»; в других случаях это связано с простой ненадежностью сети.
Тем не менее, распространенное решение проблем HTTP push, найденных в сети, заключается в увеличении http.postBuffer.
Это не работает ни в одной из вышеупомянутых ситуаций и полезно только в небольшом, крайне ограниченном числе случаев: по существу, когда соединение не поддерживает должным образом HTTP / 1.1.
Документируйте, когда поднимаете это значение, и то, что оно на самом деле делает, и отговаривайте людей использовать его в качестве общего решения проблем толчка, поскольку оно там неэффективно.
Итак, документация на git config http.postBufferданный момент включает в себя:
http.postBuffer
Максимальный размер в байтах буфера, используемого интеллектуальными HTTP-транспортами при отправке данных в удаленную систему.
Для запросов, превышающих этот размер буфера, используется HTTP / 1.1 и Transfer-Encoding: chunked, чтобы избежать локального создания файла большого пакета.
Значение по умолчанию - 1 МБ, что достаточно для большинства запросов.
Обратите внимание, что повышение этого предела эффективно только для отключения кодирования передачи по частям и поэтому должно использоваться только в том случае, если удаленный сервер или прокси-сервер поддерживает только HTTP / 1.0 или несовместим со стандартом HTTP.
Поднятие этого, в общем, не является эффективным решением для большинства проблем push, но может значительно увеличить потребление памяти, так как весь буфер выделяется даже для небольших push .