Git, фатальный: удаленный конец неожиданно повесил трубку

Когда я попытался запустить

git push origin master --force

Я только что получил

Counting objects: 2649, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (1280/1280), done.
error: RPC failed; result=22, HTTP code = 413 | 116 KiB/s   
fatal: The remote end hung up unexpectedly
Writing objects: 100% (2504/2504), 449.61 MiB | 4.19 MiB/s, done.
Total 2504 (delta 1309), reused 2242 (delta 1216)
fatal: The remote end hung up unexpectedly
Everything up-to-date

Это связано с тем, что он не защищен? Я попытался создать открытый ключ, как в ответе Fatal: удаленный конец неожиданно повесил трубку и снова запустил его, но он все равно не работает. Действительно ли я не использую ключ? Если да, то как его использовать?

Ответ 3

Причина: превышен размер сообщения для файла Git.

Решение:

Перейдите к репо.

Выполните следующую команду, чтобы увеличить буфер до 500 МБ после перехода в репозиторий:

git config http.postBuffer 524288000

Ответ 4

Вы можете получить сообщение об ошибке

ошибка: не удалось заблокировать файл конфигурации .git/config: нет такого файла или Каталог

потому что у вас нет локального файла .git/config. Вы можете заставить его работать с помощью этой команды

git config --global http.postBuffer 524288000

Ответ 5

Другие решения в моем случае не работали, поэтому сбор мусора исправил его для меня:

git gc --aggressive

Ответ 6

Эта ошибка также может быть вызвана отсутствующими разрешениями на запись в хранилище.


Мой конкретный случай прошел так:

  1. Я создал репо с пользователем root моего сервера (через SSH).
  2. Я установил службу git и создал пользователя git linux, который должен управлять всеми действиями, связанными с git.
  3. К тому времени я уже забыл, что в первую очередь репозиторий создавался с пользователем root, а у пользователя git просто не было прав доступа к файлам для записи чего-либо в репозиторий.

Ответ 7

Вопреки одному из других ответов - у меня возникла проблема с нажатием кнопки ssh - я переключился на https и был исправлен.

git remote remove origin
git remote add origin https://github..com/user/repo
git push --set-upstream origin master

Ответ 8

Если вы используете git для Windows (и, скорее всего, если вы делаете это на машине Windows), и никакие другие исправления здесь не работают, попробуйте перейти к https://github.com/git-for-windows/git/releases и получить версию версии 2.4.5 или после нее. Исправил это для меня.

Ответ 9

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

Ответ 10

В нашем случае проблема была клоном, который написал файл .git/config, который содержал запись url, которая была методом доступа только для чтения. Исправлена ​​проблема с изменением URL-адреса от метода :// до метода @.

Запуск git remote -v осветил проблему.

Ответ 11

Другое дополнение, поскольку я столкнулся с этой ошибкой по-другому, и Google взял меня здесь.

Моя проблема была несоответствием случая; один camelCase и один нет. По-видимому, GIT останавливает вас, делая это, не сообщая вам, почему. Поэтому, если ваши ветки отличаются от удаленного только в капитализации, попробуйте заменить их одинаковыми.

См: Git: "Мастер не может быть разрешен для ветвления" после слияния

Ответ 12

Это может произойти после обновления вашей платформы OSX.

Откройте терминал и перейдите в свою .ssh-папку и введите ssh-add -K ~/.ssh/id_rsa

Ответ 13

У меня случилась такая же ошибка при нажатии.
Я сделал трюк "http.postBuffer". Он решил это, но когда я хотел нажать, я снова столкнулся с ошибкой.

Что решило мою проблему:
 1. Скопировал его в другую папку с другой виртуальной машиной. (Linux).
 2. Я сделал свои изменения.
 3. Вдвинул его с оригинальной виртуальной машиной, где я изначально не мог нажать. (Windows)

Ответ 14

Я получил эту ошибку, когда у меня была некорректная ключевая пара в .ssh. Добавление pubkey в github (в настройках) исправило эту проблему для меня.

Ответ 15

У меня та же проблема. Я заметил на веб-странице git, что URL-адрес клонирования SSH имеет следующую структуру:

[email protected]:user/project.git

Я мог бы решить свою проблему, просто изменив ":" на "/" следующим образом:

[email protected]/user/project.git

может быть полезно.

Ответ 16

Кажется, это может быть одна из тысячи вещей.

Для меня я изначально подталкивал мастера и развивал (мастер не имел никаких изменений) через SourceTree. Изменение этого для разработки только сработало.

Ответ 17

Я сталкивался с подобной ошибкой при загрузке большого репозитория "фатально: удаленный конец неожиданно завис", без каких-либо дополнительных подробностей.

После долгих исследований вот что я сделал:

  • Использование SSH вместо HTTPS не решило проблему.
  • Увеличивать http.postBuffer постепенно до очень большого значения, все равно не повезло.
  • Я выяснил, что это может быть из-за больших файлов в репо (так как это недавно перенесенный репо из спектакля), поэтому я заново создал репо, используя LFS, установив largeFileThreshold на 40 м, что значительно уменьшило размер репо (с 3,5 ГБ до 500M). Я думал, что это решит проблему, но, к моему удивлению, я все еще столкнулся с той же ошибкой.

Наконец, мне пришло в голову, что, возможно, я использую старый git-клиент, так как не вижу дополнительных сообщений об ошибках. Я обновил git client до последней (2.20.1), и вуаля, ошибка исчезла!

Ответ 18

PLESK Nginx и GIT Я получал эту ошибку на plesk git, и при отправке большого репозитория с (кто знает, что) он дал мне эту ошибку с HTTP-кодом 413, и я посмотрел, что следующим сервером был Plesk, и на нем работали nginx и apache2. так я заглянул в логи и нашел ошибку в логах nginx

Перейдя по этой ссылке, можно разрешить plesk перестроить конфигурацию с большей загрузкой файлов.

Я пропустил часть php для git

После этого git push работал без ошибок.

Ответ 19

Мне удалось обойти эту проблему, используя Git Shell.

Каждый репозиторий в github.com дает URL-адрес HTTPS/SSH/Subversion, который можно использовать для загрузки с помощью Shell, см. здесь: http://prntscr.com/8ydguv.
Основываясь на последних изменениях GitHub, SSH представляется лучшим методом.

Команда для использования в оболочке:

git clone "URL of repo goes here w/ no quotes"

Ответ 20

Я получил эту ошибку, когда у меня возникла ошибка с именем удаленной ветки

Ответ 21

Кажется почти бессмысленным добавить ответ, но я боролся с этим целую вечность, когда я, наконец, обнаружил, что Visual Studio Online страдает от спорадического отключения. Это стало очевидным, когда VS продолжал запрашивать кредиты, а веб-сайт VSO иногда давал 500.

Counting objects: 138816, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (38049/38049), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
The remote end hung up unexpectedly/138816), 33.30 MiB | 3.00 KiB/s
Writing objects: 100% (138816/138816), 50.21 MiB | 3.00 KiB/s, done.
Total 138816 (delta 100197), reused 134574 (delta 96515)
fatal: The remote end hung up unexpectedly
Everything up-to-date

После этого я возвращаю свой почтовый HTTP-буфер обратно на 2 Мб, так как я на самом деле думаю, что он работает лучше со многими меньшими сообщениями.

Лука

Ответ 22

Сделайте это, чтобы увидеть ключ, который вы используете; ssh -vT git @github.digitalglobe.com

Затем убедитесь, что в вашей сборке этот запуск выполняется с самого начала. eval "$ (ssh-agent -s)" ssh-add ~/.ssh/id_rsa

Ответ 23

1) cd к проекту dir

2) git status

3) git checkout -f HEAD

4) Подтвердите успех, снова потянув мастера, чтобы убедиться, что вы в курсе, если ваш репо выглядел не полностью

Это работает, если вы получаете сообщение об ошибке из Visual Studio Git при клонировании репозитория из Bitbucket

Ответ 24

Это также может произойти, если какие-либо коммиты, которые вы нажимаете, искажены.

У меня (по незнанию) был коммит с искаженным полем Email автора, но все, что я получал, было это смутное сообщение об ошибке зависания remote end hung up. Я был в состоянии выдвинуть другие ветки, но не эту одну ветку, поэтому я начал выталкивать коммиты из "плохой" ветки по одному, пока, наконец, не приземлился в:

Pushing to [email protected]:directangular/unicorn.git
Counting objects: 100% (9/9), done.
Delta compression using up to 20 threads
Writing objects: 100% (5/5), 549 bytes | 549.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: error: object 74c7584ff0b93591c19d3a3c19695889dd2274d2: badEmail: invalid author/committer line - bad email        
remote: fatal: fsck error in packed object        
error: remote unpack failed: index-pack abnormal exit
To github.com:directangular/unicorn.git
 ! [remote rejected]       pizzafeast -> pizzafeast (failed)
error: failed to push some refs to '[email protected]:directangular/unicorn.git'

Таким образом, похоже, что remote end hung up unexpectedly ошибка является своего рода "проглатыванием" фактического сообщения об ошибке, что, вероятно, является своего рода некорректным коммитом, как у меня здесь.

После исправления искаженного письма я смог толкнуть просто отлично.

Ответ 25

Я не думаю, что это хорошая идея сделать это, но если у вас есть резервная копия на вашем компьютере... нажмите еще раз, а затем попробуйте клонировать репо, а затем удалите .git из старого каталога и переместите .git из новой клонированной папки... git разрешен но из-за этой проблемы некоторые файлы могут не загружаться в git. Снова переместите все назад, затем перетащите его на сервер или другой компьютер, на котором произошла ошибка. Прямо сейчас я только что сделал... Работает на меня... и делаю резервную копию вашего каталога, прежде чем сделать это.

И, пожалуйста, поправьте меня, если я ошибаюсь. Я также не знаю, что может пойти не так после этого? Но на этот раз это действительно работает.