Не уверен, что у меня была точно такая же проблема, но сообщение об ошибке было таким же. Похоже, это происходило только на коробке ubuntu, на которой я настроил git-сервер, по какой-то причине коробка centos с настроенным git-сервером была в порядке.
Я только что решил это через 3 или 4 дня. Оказывается, потому что лежащая в основе git библиотека Curl имеет неработающую реализацию Keep-alive (в итоге я сбросил HTTP-трафик и проверил поведение вручную).
В двух словах: Curl (по крайней мере, версия, используемая в каждой реализации Git, которую я смог найти, включая git командной строки и EGit eclipse), похоже, неправильно интерпретирует заголовок отклика Connection или, более правильно, кажется, неправильно интерпретировать отсутствие этого.
Чтобы решить эту проблему, вам нужно настроить виртуальный хост SSL внутри apache, который обслуживает ваш GIT-репозиторий, с дополнительной директивой специально для git. Добавьте эти строки непосредственно перед .
BrowserMatch "git" nokeepalive ssl-unclean-shutdown
К сожалению, вы не можете сказать apache просто понизить до HTTP / 1.0 (было бы чище), потому что Curl не может с этим справиться, но вы можете просто сказать ему принудительно устанавливать Connection: close при каждом запросе, который Curl знает как обрабатывать.
В случае ошибочного совпадения, если вы попытаетесь проверить Curl напрямую без этого изменения, оно будет работать, потому что оно делает один запрос, а затем прерывается. Эта проблема станет очевидной только при получении curl для выполнения двух запросов по одному и тому же keep-alive соединению через ssl.