Этот код ошибки является ошибкой тайм-аута на клиенте.Хотя я подозреваю, что серверная часть закрывается, как следует из сообщения.Чтобы попытаться получить больше информации, вы можете попытаться установить переменную среды GIT_CURL_VERBOSE=1
для своего push-запроса, например:
GIT_CURL_VERBOSE=1 git push origin
Это может дать вам представление о том, истекло ли время ожидания клиентаили отключение сервера, что является первоначальной ошибкой.Есть несколько вещей, которые вы могли бы сделать, чтобы убедиться, что вы не всегда сталкиваетесь с этой ошибкой.
- Проверьте тайм-ауты на стороне сервера, если вы можете контролировать это.Они могут быть слишком маленькими.Это зависит от реализации сервера.
- Проверьте хранилище на наличие больших файлов, особенно двоичных файлов.Они могут обрабатываться по-разному.
- Убедитесь, что вы не устанавливаете http.lowSpeedLimit, http.lowSpeedTime случайно: они должны быть отключены по умолчанию (при просмотре кода).
Большой репозиторий
Для пункта 2. Есть несколько вещей, которые вы можете сделать, если вы подозреваете, что пакет, который вы толкаете, это крупные объекты.Это сообщение в блоге довольно подробно на эту тему:
http://blogs.atlassian.com/2014/05/handle-big-repositories-git/
Я не думаю, что http.postBuffer действительно является решением здесь.