Git терпит неудачу при нажатии на commit к github - PullRequest
122 голосов
/ 24 апреля 2010

Я клонировал репозиторий 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 вернуться к терминалу.

Ответы [ 7 ]

271 голосов
/ 31 августа 2010

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

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

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

EDIT

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

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

git config http.postBuffer 524288000

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

КОНЕЦ РЕДАКТИРОВАНИЯ

способ, которым я мог заставить его работать (РЕДАКТИРОВАТЬ до того, как я изменил postBuffer), заключался в том, чтобы записать в архив мое хранилище, скопировать его на компьютер, который может делать git поверх ssh, и отправить его в github. Затем, когда вы пытаетесь сделать push / pull с исходного сервера, он должен работать через https. (поскольку объем данных намного меньше, чем при первоначальном нажатии).

Надеюсь, это поможет.

3 голосов
/ 15 августа 2018

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

git config http.postBuffer 524288000

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

git remote -v
git remote rm origin 
git remote add origin https://github.com/username/project.git
3 голосов
/ 24 апреля 2010

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

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

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

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

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

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

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

1 голос
/ 23 апреля 2015

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

0 голосов
/ 20 февраля 2019

Я пытался перейти на свой собственный сервер bonobo-git и не понял, что http.postbuffer означает каталог проекта ...

так что просто для других запутанных:

почему? В моем случае у меня были большие zip-файлы с активами и некоторые PSD-файлы, которые, как я полагаю, были увеличены до размера буфера.

Как это сделать http.postbuffer: выполните эту команду в каталоге src вашего проекта, рядом с папкой .git, а не на сервере.

Имейте в виду, будут создаваться большие временные (чанковые) файлы с таким размером буфера.

Примечание: просто проверьте ваши самые большие файлы, затем установите буфер.

0 голосов
/ 17 августа 2017

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

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

0 голосов
/ 15 января 2013

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

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

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

...