Git терпит неудачу при нажатии фиксации на github

я клонировал репозиторий git, который я разместил на github на своем ноутбуке. Я смог успешно нажать пару коммитов на github без проблем. Однако теперь я получаю следующую ошибку:

Compressing objects: 100% (792/792), done.
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1148/1148), 18.79 MiB | 13.81 MiB/s, done.
Total 1148 (delta 356), reused 944 (delta 214)

отсюда он просто висит, и я, наконец, должен CTRL + C назад к терминалу.

6 ответов


У меня была та же проблема, и я считаю, что это связано с размером РЕПО (отредактированного - или размером конкретного файла), который вы пытаетесь нажать.

в основном я смог создать новые репозитории и подтолкнуть их к github. Но существующее не сработает.

код ошибки HTTP, похоже, поддерживает меня, это ошибка "требуемая длина". Так что, возможно, он слишком велик для calc или greated, что Макс. Кто знает.

редактировать

Я обнаружил, что проблема может быть файлы, которые являются большими. У меня было одно обновление это не подтолкнуло бы, даже если бы я успех подталкивает к этому. В фиксации был только один файл но это оказалось 1,6 м

поэтому я добавил следующее изменение конфигурации

git config http.postBuffer 524288000

разрешить до размера файла 500M и тогда мой толчок сработал. Это может быть что это было проблемой изначально с нажатием большого РЕПО через http протокол.

конец EDIT

способ заставить его работать (редактировать до изменения postBuffer) состоял в том, чтобы вымазать мое РЕПО, скопировать его на машину, которая может делать git через ssh, и нажать его на github. Затем, когда вы пытаетесь сделать push / pull с исходного сервера, он должен работать через https. (так как это гораздо меньший объем данных, чем исходный толчок).

надеюсь, что это помогает.


выглядит как проблема сервера (т. е. проблема "GitHub").
Если вы посмотрите на этой теме, это может произойти, когда git-http-backend получает повреждение кучи.(и так как они просто поставить на место a поддержка smart http...)
Но какова бы ни была фактическая причина, она также может быть связана с недавним спорадическое нарушение работы одного из файловых серверов GitHub.

вы все еще видите это сообщение об ошибке? Потому что если ты do:

  • проверьте локальную версию Git (и обновите ее до последней)
  • сообщить об этом как ошибка GitHub.

Примечание:поддержка Smart HTTP это большое дело для тех из нас, кто стоит за аутентифицированным прокси-сервером Enterprise firewall!

С этого момента, если вы клонируете репозиторий поверх http:// url, и вы используете клиент Git версии 1.6.6 или выше, Git будет автоматически используйте новый, лучший транспортный механизм.
Еще более удивительно, однако, что теперь вы можете нажать на этот протокол и клонировать частные репозитории. Если вы получаете доступ к частному репозиторию или сотрудничаете с ним и хотите получить push-доступ, вы можете поместить свое имя пользователя в URL-адрес, и Git предложит вам пароль при попытке доступа к нему.

более старые клиенты также упадут назад к более старому, более менее эффективному пути, поэтому ничего не должно сломать - как раз более новые клиенты должны работать лучше.

Итак, еще раз, убедитесь, что сначала обновите свой клиент Git.


нажатие от Git GUI вместо Bash работает для меня.


Если эта команда не помогает

git config http.postBuffer 524288000

попробуйте изменить метод ssh на https

git remote -v
git remote rm origin 
git remote add origin https://github.com/username/project.git

проблема в основном заключается в размере файлов, которые необходимо нажать. Я пытался нажать некоторые библиотеки только размера 2 mb, то тоже толчок давал ошибку RPC с результатом 7. Линия имеет 4 mbps и работает нормально. Несколько последующих попыток толчка принесли мне успех. Если такая ошибка возникает, подождите несколько минут и продолжайте пытаться.

Я также узнал, что есть некоторые сбои RPC, если github не работает или получает нестабильную сеть на их стороне.

поэтому продолжать пытаться через несколько интервалов-единственный вариант!


в этих случаях вы можете попробовать ssh, если https застрял.

также вы можете попробовать увеличить размер буфера до астрономической цифры, так что вам больше не придется беспокоиться о размере буфера git config http.postBuffer 100000000