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 113

6 ответов:

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

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

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

EDIT

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

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

git config http.postBuffer 524288000

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

конец Редактировать

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

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

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

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

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

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

отныне, если вы клонируете репозиторий за 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 Мб, тогда тоже толчок давал ошибку RPC с результатом 7. Линии составляет 4 Мбит / с и работает нормально. Некоторые последующие попытки толчка принесли мне успех. Если такая ошибка приходит, подождите несколько минут и продолжайте пытаться.

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

Так что продолжая пытаться после некоторых интервалов является единственным вариантом!

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

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