Git, ölümcül: Uzak uç beklenmedik bir şekilde telefonu kapattı


278

Koşmaya çalıştığımda

git push origin master --force

Yeni aldım

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

Güvenli olmamakla ilgili bir şey mi? Fatal cevabında olduğu gibi bir ortak anahtar oluşturmaya çalıştım : Uzak uç beklenmedik bir şekilde kapatıldı ve tekrar çalıştırıldı, ancak yine de çalışmıyor. Aslında anahtarı kullanmıyor muyum? Öyleyse, nasıl kullanırım?


çıktısını göstermek lütfengit remote -v
CharlesB


13
git config http.postBuffer 524288000 # benim için çalışıyor
Hari Das

Eğer alırsanız error: could not lock config file .git/config: No such file or directorybakınız stackoverflow.com/a/32329453/827525
niksmac

1
Önerilen çözümlerden hiçbirini alamadım. Sonra GitKraken'i denedim. Git.exe kullanmayan birkaç Git programından biridir. GitKraken yapabilirdi. GitKraken havuzu ittikten sonra git.exe'ye geri dönüp herhangi bir sorun olmadan senkronize edebilirim.
lars pehrsson

Yanıtlar:


83

Bu, github'u varsayılan olarak ssh'a nasıl alırım ve yeni depolar için https'ye nasıl benzeyeceğim . Muhtemelen http protokolünden ssh'a geçmeye değer:

$ git remote add origin git@github.com:username/project.git

Neden http'den https'ye geçemiyorum?
DanielLC

10
bash-3.2 $ git uzak kaynak ekle git@github.com: xxx / xx.git ölümcül: uzak kaynak zaten var. NEDEN ?
almaruf

11
@almaruf çünkü uzaktan kumanda originzaten orada ve onu değiştirmeye çalışıyorsunuz. git buna izin vermiyor. Bu yüzden önce yapmalı git remote rm originsonra tekrar deneyin. Bu işe yarar
Alfie

yeni bir git init
Raul

ssh üzerinden git protokolünü (ssh anahtarları gerektirir) veya kişisel bir erişim belirteci aracılığıyla kullanıcı adı ve şifre gerektiren https protokolünü kullanabilirsiniz - Daha sonra tercih ederim
Raul

520

Sorun git / https arabellek ayarlarından kaynaklanıyor. Bunu çözmek için, (alınan github için basıldığında tamamlama başarısız Git )

git config http.postBuffer 524288000

Ve komutu tekrar çalıştırın


4
Ben tampon 500MB daha yüksek olması gerekir - bu mümkün mü? Eğer postBuffer numarasını daha yüksek yaparsam bir fark yaratmıyor gibi görünüyor ...
jowie

Bağlantı için teşekkürler - Sorunu, itmeyi daha küçük parçalara bölerek sıraladım. Yine bir sorunum varsa nereye bakacağımı biliyorum!
jowie

17
Bunu kullanmak iyi bir fikir olabilir --globalmi? Düzenli olarak büyük depolarla uğraşıyorum.
DaAwesomeP

2
@ shivam13juna hiçbir şey internetten silinmez: :) web.archive.org/web/20170119225336/http://github.com/gitlabhq/…
Roman M

3
"Git config http.postBuffer 524288000" komutunu çalıştırdım, ancak yine de çözülemedi, yine de aynı şeyi söylüyor, uzak uç beklenmedik bir şekilde kapatıldı
Narendra

80

Neden: Git için varsayılan dosya yayını boyutu aşıldı.

Çözüm :

Repo'ya gidin.

Depoya gittikten sonra arabelleği 500 MB'a yükseltmek için aşağıdaki komutu çalıştırın:

git config http.postBuffer 524288000

2
Lütfen kod etiketlerini kullanarak kodunuzu biçimlendirin. Ayrıca kodun ne yaptığını açıklayın, çünkü bu eski bir yazı, cevabınızı mümkün olduğunca iyi yapın.
Dan Grahn

31
git config ssh.postBuffer 524288000Http yerine ssh üzerinden gönderim yapıyorsanız da kullanabilirsiniz .
John M

Bazı durumlardagit config --global http.postBuffer 100000000
Job M

Bu komutun yürütülmesinden sonra 'ölümcül: git git dizininde değilim'
ka3ak

@JohnM Bu seçenek mevcut görünmüyor, man sayfasında veya git-scm.com/docs/git-config'de belgelenmemiş
Kimse

29

Bunun gibi bir hata alabilirsiniz

hata: yapılandırma dosyası kilitlenemedi .git / config: Böyle bir dosya veya dizin yok

bunun nedeni yerel bir .git/configdosyanızın olmaması Bu komutla çalışmasını sağlayabilirsiniz

git config --global http.postBuffer 524288000


Bu, cygwin içinde çok yavaş bir PC'de klonlamaya çalışırken bana yardımcı oldu - uzaktan
kapatmaya

Bu, "ölümcül: Uzak uç ilk temasta kapatıldı" sorununu çözmeme yardımcı oldu.
Karthic.K

15

Diğer çözümler benim durumumda işe yaramadı, bir çöp toplama yapmak benim için düzeltti:

git gc --aggressive


21
Bu benim sorunumu çözdü, ama aynı zamanda koparılmış HEAD değişikliklerini onları birleştirmenin iğrenç hale geldiği bir duruma da getirdi (her şey bir ADD'ye dönüştürüldü). Keşke bunu çalıştırmadan önce bir tane daha araştırsaydım.
MatrixManAtYrService

Bu nasıl sorun çıkarıyor?
Annadate Piyush

9

Diğer cevapların aksine - ssh kullanarak itme sorunu vardı - ben https geçti ve düzeltildi.

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

8

Bu hata , depodaki eksik yazma izinleriyle de atılabilir .


Somut davam şöyle gitti:

  1. rootSunucumun kullanıcısıyla (SSH aracılığıyla) bir repo oluşturdum .
  2. Git hizmetini yükledim ve gitgit ile ilgili tüm eylemleri yönetmesi gereken bir linux kullanıcısı oluşturdum .
  3. O zamana kadar, deponun kullanıcıyla rootilk etapta yaratıldığını unutmuştum ve gitkullanıcı sadece depoya bir şey yazmak için dosya izinlerine sahip değildi.

4

Culprit (benim durumumda):
Yüksek gecikmeli bir ağ.

Bu kendi başına bir cevap değil, daha çok başkalarına yardımcı olabilecek bir gözlemdir. Bu hatanın zaman zaman yüksek gecikmeli ağlarda ortaya çıktığını fark ettim (örneğin internet erişimi için bir Uydu çanağı kullanmak zorundayım). Ağın hızı iyi, ancak gecikme süresi yüksek olabilir. Not: Sorun yalnızca belirli senaryolarda mevcuttur, ancak modelin ne olduğunu belirlemedim.

Geçici olarak hafifletme:
Ağları değiştirdim — daha yavaş, ancak daha düşük gecikmeli bir hücre ağına (telefonum hotspot olarak kullanılıyor) geçtim - ve sorun ortadan kalktı. Bunu sadece itermittely yapabileceğime dikkat edin çünkü hücre bağlantım da aralıklı. Ayrıca, bant genişliği kullanımı maliyetler ekler. Ayrıca bu seçeneği kullanabildiğim için şanslıyım. Herkes değil.

Eminim bir yere git - veya ssh veya curl ya da her şeyden önce zaman aşımına uğrayan - bu tür ağlara daha toleranslı bir yapılandırma ayarı vardır, ancak ne olduğunu bilmiyorum.

Geliştiricilere bir savunma:
Bu tür konular kırsal nüfus için sürekli bir sorundur. Sistemlerinizi, araçlarınızı ve uygulamalarınızı tasarlarken lütfen bizi düşünün. Teşekkür ederim.


3

Bizim durumumuzda sorun, .git/configsalt okunur erişim yöntemi olan bir url girdisi içeren bir dosya yazan bir klondur. URL'yi ://yöntemden yönteme değiştirmek @sorunu çözdü.

Koşu git remote -vbazı sorunu aydınlattı.



3

Muhtemelen mevcut bir depodaki havuzu klonladınız, sorunu çözmek için sadece başka bir dizindeki deponun klonlanması ve bu yeni dizine yapılan değişikliklerin çoğaltılması ve ardından push'un çalıştırılması mümkündür.


bir beta ansible iş akışımız var ve siteyi yeniden oluşturmak tam olarak buna neden oldu, repo diğerinin üzerine klonladı. Düzeltmek için uygun bir şey ama git sorunu kasa. Teşekkürler :-)
Alejandro Moreno

2

Başka bir ek, bu hatayla farklı bir şekilde karşılaştığım ve Google beni buraya getirdi.

Benim sorunum bir dava uyuşmazlığıydı; bir camelCase ve bir değil. Görünüşe göre, GIT bunu size nedenini söylemeden durdurmanızı sağlıyor. Dolayısıyla, dallarınız yalnızca büyük harf kullanımında uzaktan kumandadan farklıysa, onları aynı olacak şekilde değiştirmeyi deneyin.

Bkz. Git: Birleştirme işleminden sonra 'Master şubeye çözümlenemiyor'


İlgili tüm bilgileri eklediğimi sanıyordum - bunun nedeni bir vaka uyuşmazlığıdır. Daha açık olmak için bir cümle ekledim, ancak bu gerçekten bağlantıyla ilgili değil. Net değilse, üzgünüm.
Thomas

2

Bu, OSX platformunuzu güncelledikten sonra ortaya çıkabilir.

Terminal'i açın ve .ssh-klasörünüze gidin ve ssh-add -K ~/.ssh/id_rsa


2

PLESK Nginx ve GIT Ben plesk git bu hatayı alıyordum ve büyük bir repo ile iterken (kim bilir) HTTP kodu 413 ile bu hatayı verdi ve ben aşağıdaki Sunucu Plesk ve nachex çalışan yanı sıra apache2 çalışan baktı bu yüzden günlüklere baktım ve nginx günlüklerindeki hatayı buldum

Plesk'in daha büyük dosya yükleme ile yapılandırmayı yeniden oluşturmasına izin vermek için bu bağlantıyı takip edin .

Git için php bölümünü atladım

Bundan sonra git push hatasız çalıştı.


1

Çekerken de aynı hatayla karşılaştım.
"Http.postBuffer" hile yaptım. Bunu çözdü, ama itmek istediğimde hatayla tekrar karşılaştım.


Sorunumu ne çözdü: 1. Başka bir sanal makineyle başka bir klasöre kopyaladım. (Linux).
2. Değişikliklerimi yaptım.
3. Başlangıçta itemediğim orijinal sanal makine ile itti. (Pencereler)


bu bir çözüm arkadaşı değil!
Behrouz.M

2
Bunun ideal bir çözüm olmadığını biliyorum, ama benim durumumdaki sorunu çözdü. Benim durumumda olduğu gibi, diğer tüm cevaplar başarısız olduğunda hala cankurtaran olabilir.
nopara73

1

.Ssh yanlış anahtar çifti vardı bu hatayı aldım. Pubkey'i github'a (ayarlarda) eklemek bu sorunu benim için düzeltti.


1

Aynı problemim var. Git web sayfasından SSH klon URL'sinin bir sonraki yapıya sahip olduğunu fark ettim:

git@github.com:user/project.git

Aşağıdaki gibi sadece ":" ile "/" değiştirerek sorunumu çözebilirim:

git@github.com/user/project.git

bu yardımcı olabilir.


1

Bir cevap eklemek neredeyse anlamsız gibi görünüyor, ama nihayetinde ara sıra bir kesintiye uğrayan Visual Studio Online olduğunu keşfettiğimde, bu uzun zamandır savaşıyordum. Bu durum, VS kredi istemeye devam ettiğinde ortaya çıktı ve VSO web sitesi bazen 500 verdi.

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 yazı arabelleğimi daha sonra 2Mb'ye geri ayarladım, çünkü aslında birçok küçük yazı ile daha iyi çalıştığını düşünüyorum.

Luke


1

Bin şeyden biri gibi görünüyor.

Benim için başlangıçta ustayı itiyordum ve SourceTree aracılığıyla geliştiriyordum (ustanın hiçbir değişikliği yoktu). Bunu sadece geliştirmek için değiştirmek çalıştı.


1

Büyük bir repo yüklerken benzer bir hatayla karşılaştım, "ölümcül: Uzak uç beklenmedik bir şekilde kapatıldı".

Bir çok araştırmadan sonra, yaptığım şey:

  • HTTPS yerine SSH kullanmak sorunu çözmedi.
  • Http.postBuffer'ı çok büyük bir değere kadar kademeli olarak artırmak, hala şans yok.
  • Bunun repodaki büyük dosyalar nedeniyle olabileceğini anladım (bu, performanstan yeni taşınan bir repo olduğu için), bu yüzden repo boyutunu LF kullanarak yeniden oluşturdum, bu da repo boyutunu (3.5G'den 500M). Bunun sorunu çözeceğini düşündüm, ama yine de aynı hatayla karşılaştım.

Son olarak, ek hata mesajları görmediğim için eski bir git istemcisi kullanıyorum olabilir. Ben son için git istemcisi yükseltilmiş (2.20.1), ve işte, hata gitmiş!


Ayrıca bu kesin bir sorun vardı (olsa da TFS göç). 2.19'dan 2.20'ye yükselttim ve düzeltildi, sürüm notları aracılığıyla bir cursory bakmak sorunun ne olabileceğini ortaya koymadı.
George Richardson

Ben sadece 2.20.1.windows.1'e yükselttim ve hala uzak depoya itmeme izin vermiyor
Vidar

@Vidar Büyük dosyalar için kontrol edilebilir, GitHub'ın 100MB'lik katı bir sınırı vardır. Help.github.com/articles/what-is-my-disk-quota ; Bölümünün "manuel olarak depo içinde büyük dosyaları inceleyerek" göz at confluence.atlassian.com/bitbucket/... ; sayfanın kendisi iyi bir okuma.
Mahmoud Hanafy

@MahmoudHanafy - teşekkürler - web.config dosyasında maksimum dosya boyutu hakkında bir parametredir - bunu artırın ve git davranır ve herkes mutludur! Benim için GitHub değil, kendi özel sitemiz Bonobo.Git.Server.
Vidar


0

Git Shell'i kullanarak bu sorunu çözebildim.

Github.com içindeki her bir havuz size Shell kullanarak indirmek için kullanabileceğiniz HTTPS / SSH / Subversion URL'leri verir, buraya bakın: http://prntscr.com/8ydguv .
GitHub'ın son değişikliklerine dayanarak, SSH en iyi yöntem gibi görünüyor.

Shell'de kullanma komutu:

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

"Git Shell" ile ne demek istiyorsun? Kullanılması gitterminalde?
Karl Richter

0

Kullandığınız anahtarı görmek için bunu yapın; ssh -vT git@github.digitalglobe.com

Ardından, yapınızda başlangıçta bu çalıştırmaya sahip olduğunuzdan emin olun. eval "$ (ssh-agent -s)" ssh-add ~ / .ssh / id_rsa


0

1) proje dizinine cd

2) git status

3) git checkout -f HEAD

4) repo'nuz eksik görünüyorsa güncel olduğunuzdan emin olmak için ustayı aşağı çekerek başarıyı onaylayın

Bu, Bitbucket'ten bir repo kopyalarken Visual Studio'nun Git'ten söz konusu hatayı alırsanız çalışır


0

Bu, ittiğiniz taahhütlerin herhangi biri hatalı biçimlendirilmişse de olabilir.

Ben (bilmeden) hatalı biçimlendirilmiş bir Yazar E-posta alanı ile bir taahhüdüm vardı, ama sadece bu belirsiz remote end hung uphata mesajı alıyorum. Diğer dalları sadece bu bir dalı değil , bu yüzden "kötü" daldaki taahhütleri bir kerede bir itmeye başladım:

Pushing to git@github.com: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 'git@github.com:directangular/unicorn.git'

Yani remote end hung up unexpectedlyhata bir tür gerçek hata mesajı "yutma" gibi görünüyor , muhtemelen burada olduğu gibi bir tür hatalı biçimlendirilmiş taahhüt.

Yanlış biçimlendirilmiş e-postayı düzelttikten sonra gayet iyi bir şekilde itebildim.


0

Bunu yapmak için iyi bir fikir olduğunu sanmıyorum ama ur makinede yedek varsa .. bir kez daha itin ve daha sonra repo klonlama deneyin ve sonra eski dir .git kaldırın ve .git yeni klonlanmış klasörden taşıyın .. git çözüldü ancak sorun nedeniyle bazı dosyalar git'te yüklenmeyebilir. Hepsini tekrar yukarıdan itin ve ardından ur sunucunuza veya bozulduğu diğer makineye çekin. Thu anda sadece yaptým ... Benim için çalýţýyor .. ve bunu yapmadan önce direni yedekle.

Ve eğer yanlışsam plz beni düzelt. Bunu yaptıktan sonra neyin yanlış gidebileceğini de bilmiyorum. Ama bu sefer gerçekten işe yarıyor.


0

sorunum (ölümcül: Uzak uç beklenmedik bir şekilde kapatıldı) havuz izni ve sahibi kontrol edilerek çözüldü.

git depo dosyalarının sahibi, onunla it / çek / klonlamak istediğiniz kullanıcı olmalıdır.


0

Yukarıdaki cevapların hiçbiri benim için işe yaramadı, ama işte burada.

1) .git/projenizden silin
2) Uzak depoyu masaüstünüz gibi yeni bir konuma kopyalayın. git clone https://github.com/foo/bar.git
3) .git/yeni konumdan eski konuma taşıyın
4) yeniden taahhüt edin ve değişikliklerinizi itin


0

Benim için sorun nedeni ağ ayarları oldu: Görünüşe göre SSH ve SSL sevmediği bir şekilde ağ paketleri ile muck yapan bir "Katil" wifi kartı var.

Sorunu gidermek için, "Killer Control Center", "Parameters" bölümüne gidip "Advanced Stream Detect" i devre dışı bırakmak zorunda kaldım - git komutları anında tekrar çalışmaya başladı.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.