У меня только одна ветка. Несколько месяцев я использую
git push origin master
передать в мой локальный репозиторий. Вчера вечером, после того как я внес небольшие изменения в свой локальный репозиторий и попытался нажать ту же команду, я получил следующую ошибку:
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
Я погуглил и нашел такие вопросы, как этот и этот , но ни один из ответов на эти вопросы не решает мою проблему.
Большинство ответов предполагают проблему оторванной головы . Но я не думаю, что моя голова оторвана. Я также не думаю, что нахожусь не в той ветке (у меня только одна ветка ...)
Я провел несколько экспериментов, чтобы выяснить, что не так, и вот результаты, которые я получил:
(1) Сначала мой git status
результат
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # egal.aux # egal.blg # egal.out # egal.pdf # egalcar.aux # egalcar.blg # egalcar.pdf nothing added to commit but untracked files present (use "git add" to track)
(2) Когда я печатаю git reflog
, я вижу все свои локальные коммиты, но удаленный репозиторий просто не обновляется.
(3) Когда я печатаю git branch -a
, я получаю
* master remotes/origin/master
(4) Когда я печатаю git remote show origin
, я получаю
* remote origin Fetch URL: http://github.com/CherryQu921/egaldoc_en Push URL: http://github.com/CherryQu921/egaldoc_en HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (fast-forwardable)
Я думаю, что последняя строка вывода ("перемотка вперед") странная, но я не уверен, что не так ...
fast-forwardable
означает, что вы можете перенести локальные изменения в удаленную ветку, ничего криминального :-)Ответы:
При попытке нажать большой набор изменений в хранилище Git с HTTP или HTTPS, вы можете получить сообщение об ошибке , например , как ошибка:
RPC failed; result=22, HTTP code = 411
. Это вызвано настройкой Git по умолчанию, которая ограничивает некоторые операции HTTP до 1 мегабайта.Чтобы изменить это ограничение, запустите в вашем локальном репозитории
где байты - это максимальное разрешенное количество байтов. Например:
За 500 МБ (спасибо @Hengjie)
источник
git config http.postBuffer 524288000
для 500 МБ./etc/nginx/sites-available/gitlab
). Дополнительная информация: github.com/gitlabhq/gitlabhq/issues/3099RPC failed; result=22, HTTP code = 502
?Вы также можете сделать это глобально -
Это позволит всем локальным репозиториям загружать до 500 МБ данных.
источник
Ни одно из предложенных решений не помогло нам. Нам пришлось переключиться на,
ssh
чтобы заставить эту работу работать вместоHTTPS
решения.источник
Если вы используете TortoiseGit для Windows, самый простой способ - использовать интегрированную конфигурацию.
В проводнике файлов нажмите левую кнопку мыши, выберите TortoiseGit -> Настройки . Примите информационное сообщение. Теперь вы можете выбрать, хотите ли вы настроить свойство только для текущего проекта или системы. Для общесистемной конфигурации нажмите «отредактировать общесистемный gitconfig» и добавьте следующую строку в раздел
[http]
:(если раздел
[http]
не существует, создайте его)источник
Я решил ошибку 22 следующим образом: В команде "git clone" я НЕ ввел пароль пользователя. Клон сработал, но не толчок. Решение для ошибки 22: измените .git / config URL-адрес следующим образом: url = http: // user: pwd @ host / ... Затем push сработал.
источник