Git, fatal: Ujung jarak jauh menutup secara tak terduga

278

Ketika saya mencoba lari

git push origin master --force

saya baru saja dapat

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

Apakah ada hubungannya dengan tidak merasa aman? Saya mencoba membuat kunci publik seperti pada jawaban untuk Fatal: Ujung jarak jauh menutup secara tidak terduga dan menjalankannya lagi, tetapi masih tidak berhasil. Apakah saya sebenarnya tidak menggunakan kunci? Jika demikian, bagaimana cara menggunakannya?

DanielLC
sumber
tolong tunjukkan hasilgit remote -v
CharlesB
1
kemungkinan duplikat Git gagal saat mendorong komit ke github
CharlesB
13
git config http.postBuffer 524288000 # berfungsi untuk saya
Hari Das
jika Anda error: could not lock config file .git/config: No such file or directorymelihat stackoverflow.com/a/32329453/827525
niksmac
1
Saya tidak bisa mendapatkan solusi yang disarankan untuk bekerja. Lalu saya mencoba GitKraken. Ini adalah salah satu dari beberapa program Git yang tidak menggunakan git.exe. GitKraken bisa melakukannya. Setelah GitKraken mendorong repositori, saya bisa kembali ke git.exe dan menyinkronkan tanpa masalah.
lars pehrsson

Jawaban:

83

Ini mirip dengan Bagaimana cara mendapatkan github ke default ke ssh dan bukan https untuk repositori baru . Mungkin ada baiknya mencoba beralih dari protokol http ke ssh:

$ git remote add origin [email protected]:username/project.git
Vitalliuss
sumber
Mengapa saya tidak bisa beralih dari http ke https saja?
DanielLC
10
bash-3,2 $ git remote tambahkan origin [email protected]: xxx / xx.git fatal: remote origin sudah ada. MENGAPA?
almaruf
11
@ Almaruf itu karena remote originsudah ada di sana dan Anda mencoba untuk menggantinya. git tidak mengizinkan itu. Jadi Anda harus terlebih dahulu lakukan git remote rm originkemudian coba lagi. Itu akan berhasil
Alfie
pastikan Anda menginisialisasi proyek jika itu adalah tiruan baru dengangit init
Raul
Anda dapat menggunakan protokol git melalui ssh (yang memerlukan kunci ssh) atau protokol https yang memerlukan nama pengguna dan kata sandi melalui token akses pribadi - Saya lebih suka nanti
Raul
521

Masalahnya adalah karena pengaturan buffer git / https. Untuk menyelesaikannya (diambil dari Git gagal saat mendorong commit ke github )

git config http.postBuffer 524288000

Dan jalankan perintah lagi

Roman M
sumber
4
Saya perlu buffer lebih tinggi dari 500MB - apakah itu mungkin? Tampaknya tidak ada bedanya jika saya membuat angka postBuffer lebih tinggi ...
jowie
Terima kasih atas tautannya - Saya menyortir masalah dengan memecah dorongan menjadi potongan yang lebih kecil. Jika saya memiliki masalah lagi saya tahu ke mana harus mencari!
jowie
17
Apakah sebaiknya menggunakan ini --global? Saya berurusan dengan repositori besar secara teratur.
DaAwesomeP
2
@ shivam13juna tidak ada yang pernah dihapus dari internet: :) web.archive.org/web/20170119225336/http://github.com/gitlabhq/…
Roman M
3
Saya menjalankan "git config http.postBuffer 524288000", tetapi masih masalah tidak terselesaikan, masih mengatakan hal yang sama, ujung jarak jauh menutup tanpa terduga
Narendra
80

Penyebab: Ukuran posting file default untuk Git telah terlampaui.

Solusi:

Arahkan ke repo.

Jalankan perintah berikut untuk meningkatkan buffer ke 500MB setelah menavigasi ke repositori:

git config http.postBuffer 524288000
Chinu
sumber
2
Harap format kode Anda menggunakan tag kode. Juga jelaskan apa yang kode lakukan karena ini adalah posting lama, buat jawaban Anda sebaik mungkin.
Dan Grahn
31
Anda juga dapat menggunakan git config ssh.postBuffer 524288000jika memposting lebih dari ssh daripada http.
John M
Untuk beberapa kasusgit config --global http.postBuffer 100000000
Ayub M
Saya mendapatkan 'fatal: not in a git directory' setelah eksekusi perintah ini
ka3ak
@JohnM Pilihan ini sepertinya tidak ada, itu tidak didokumentasikan di halaman manual atau git-scm.com/docs/git-config
Tidak ada yang
29

Anda mungkin mendapatkan kesalahan seperti ini

error: tidak dapat mengunci file config .git / config: Tidak ada file atau direktori tersebut

itu karena Anda tidak memiliki .git/configfile lokal Anda bisa membuatnya bekerja dengan perintah ini

git config --global http.postBuffer 524288000

niksmac
sumber
ini membantu saya ketika mencoba untuk mengkloning pada PC yang sangat lambat di dalam cygwin - itu terus berakhir jauh menutup - sampai saya menggunakan perintah ini
serup
Ini membantu saya untuk menyelesaikan masalah "fatal: Ujung jarak jauh terputus pada kontak awal".
Karthic.K
15

Solusi lain tidak berfungsi dalam kasus saya, melakukan pengumpulan sampah memperbaikinya untuk saya:

git gc --aggressive

Shameen
sumber
21
Ini memperbaiki masalah saya, tetapi juga menekan perubahan KEPALA yang terpisah menjadi keadaan di mana penggabungannya menjadi menjengkelkan (semuanya dikonversi menjadi ADD). Saya berharap saya telah meneliti yang ini sebelum menjalankannya.
MatrixManAtYrService
Bagaimana ini membuat masalah?
Annadate Piyush
9

Berlawanan dengan salah satu jawaban lain - Saya punya masalah saat mendorong menggunakan ssh - Saya beralih ke https dan sudah diperbaiki.

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

Kesalahan ini juga dapat terjadi melalui izin penulisan yang hilang pada repositori.


Kasus konkret saya berjalan seperti ini:

  1. Saya membuat repo dengan root pengguna server saya (melalui SSH).
  2. Saya menginstal layanan git dan membuat gitpengguna linux yang seharusnya mengelola semua tindakan yang berhubungan dengan git.
  3. Pada saat itu, saya sudah lupa bahwa repo dibuat dengan rootpengguna di tempat pertama, dan gitpengguna sama sekali tidak memiliki izin file untuk menulis apa pun ke dalam repositori.
Loilo
sumber
4

Penyebab (dalam kasus saya):
Jaringan latensi tinggi.

Ini bukan jawaban semata, tetapi lebih dari pengamatan yang dapat membantu orang lain. Saya menemukan bahwa kesalahan ini kadang-kadang muncul di jaringan latensi tinggi (saya harus menggunakan parabola untuk akses internet misalnya). Kecepatan jaringan baik-baik saja, tetapi latensi bisa tinggi. Catatan: Masalahnya hanya ada dalam skenario tertentu, tetapi saya belum menentukan apa polanya.

Mitigasi sementara:
Saya mengganti jaringan — saya pindah ke jaringan sel yang lebih lambat, tetapi lebih rendah latensi (telepon saya digunakan sebagai hotspot) —dan masalahnya hilang. Perhatikan bahwa saya hanya dapat melakukan ini dengan tidak sengaja karena konektivitas sel saya juga terputus-putus. Ditambah penggunaan bandwidth menambah biaya. Saya juga beruntung bahwa saya memiliki opsi ini tersedia untuk saya. Tidak semua orang melakukannya.

Saya yakin ada beberapa pengaturan konfigurasi di suatu tempat yang membuat git — atau ssh atau curl atau waktu apa pun lebih dulu — lebih toleran terhadap jaringan semacam itu, tetapi saya tidak tahu apa itu.

Permohonan bagi pengembang:
Masalah-masalah seperti ini merupakan masalah konstan bagi penduduk pedesaan. Tolong pikirkan kami saat Anda merancang sistem, peralatan, dan aplikasi Anda. Terima kasih.

t0dd
sumber
3

Dalam kasus kami, masalahnya adalah klon yang menulis .git/configfile yang berisi entri url yang merupakan metode akses hanya baca. Mengubah url dari ://metode ke @metode memperbaiki masalah.

Menjalankan git remote -vmenerangi masalah beberapa.

Frank P
sumber
3

Jika Anda menggunakan git untuk windows (dan kemungkinan besar Anda melakukannya, jika Anda melakukan ini pada mesin windows), dan tidak ada perbaikan lain di sini yang berfungsi untuk Anda, coba buka https://github.com/git-for- windows / git / rilis , dan mendapatkan versi pada atau setelah versi 2.4.5. Memperbaikinya tepat untuk saya.

rrreee
sumber
3

Anda mungkin melakukan klon repositori di dalam yang sudah ada, untuk menyelesaikan masalah dapat dengan mudah mengkloning repositori di direktori lain dan mereplikasi perubahan ke direktori baru ini dan kemudian menjalankan push.

Marcos Bahiense
sumber
kami memiliki alur kerja beta yang mungkin dan membangun kembali situs yang menyebabkan hal ini, mengkloning repo di atas yang lain. Suatu hal yang mungkin untuk diperbaiki tetapi menutupi masalah git. Terima kasih :-)
Alejandro Moreno
2

Tambahan lain, karena saya menemukan kesalahan ini dengan cara yang berbeda dan Google membawa saya ke sini.

Masalah saya adalah ketidaksesuaian kasus; satu camelCase dan satu tidak. Rupanya, GIT menghentikan Anda melakukan ini tanpa memberi tahu Anda alasannya. Jadi, jika cabang Anda berbeda dari jarak jauh hanya dalam huruf besar, cobalah mengubahnya menjadi identik.

Lihat: Git: 'Master tidak dapat diselesaikan untuk bercabang' setelah bergabung

Thomas
sumber
Saya pikir saya memasukkan semua informasi yang relevan - itu disebabkan oleh ketidaksesuaian kasus. Saya telah menambahkan kalimat agar lebih eksplisit, tetapi ini bukan tentang tautannya. Maaf kalau itu tidak jelas.
Thomas
2

Ini dapat terjadi setelah memperbarui platform OSX Anda.

Buka Terminal dan navigasikan ke folder .ssh Anda, dan masukkan ssh-add -K ~/.ssh/id_rsa

cptstarling
sumber
2

PLESK Nginx dan GIT Saya mendapatkan kesalahan ini pada plesk git dan sambil mendorong repo besar dengan (siapa yang tahu apa) itu memberi saya kesalahan ini dengan kode HTTP 413 dan saya melihat ke dalam Server berikut adalah Plesk dan nginx berjalan serta apache2 jadi saya melihat log dan menemukan kesalahan dalam log nginx

Ikuti tautan ini untuk memungkinkan plesk membangun kembali konfigurasi dengan unggahan file yang lebih besar.

Saya melewatkan bagian php untuk git

Setelah itu git push bekerja tanpa ada kesalahan.

Farrukh Subhani
sumber
1

Saya kebetulan memiliki kesalahan yang sama saat menarik.
Saya telah melakukan trik "http.postBuffer". Itu menyelesaikannya, tetapi ketika saya ingin mendorong, saya menemukan kesalahan lagi.

Apa yang memecahkan masalah saya:
1. Mengkloningnya ke folder lain dengan mesin virtual lainnya. (Linux).
2. Saya sudah melakukan perubahan.
3. Dorong dengan mesin virtual asli tempat saya awalnya tidak bisa mendorong. (Windows)

nopara73
sumber
ini bukan teman solusi!
Behrouz.M
2
Saya tahu ini bukan solusi yang ideal, tetapi itu memecahkan masalah dalam kasus saya. Itu masih bisa menyelamatkan ketika semua jawaban lainnya gagal, seperti yang mereka lakukan dalam kasus saya.
nopara73
1

Saya mendapatkan kesalahan ini ketika saya salah mengetikkan .ssh. Menambahkan pubkey ke github (dalam pengaturan) memperbaiki masalah ini untuk saya.

Michel Samia
sumber
1

Saya memiliki masalah yang sama. Saya perhatikan dari halaman web git bahwa URL klon SSH memiliki struktur berikut:

[email protected]:user/project.git

Saya dapat menyelesaikan masalah saya hanya dengan mengubah ":" dengan "/", sebagai berikut:

[email protected]/user/project.git

mungkin ini bisa membantu.

David Romero
sumber
1

Tampaknya hampir tidak ada gunanya untuk menambahkan jawaban, tetapi saya telah memperjuangkan ini sejak lama ketika saya akhirnya menemukan bahwa itu adalah Visual Studio Online yang menderita pemadaman sporadis. Itu menjadi jelas ketika VS terus meminta kredit dan situs web VSO terkadang memberi angka 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

Saya mengatur buffer posting HTTP saya kembali ke 2Mb setelah itu, karena saya benar-benar berpikir itu berfungsi lebih baik dengan banyak posting yang lebih kecil.

Luke

Luke Puplett
sumber
1

Sepertinya itu bisa menjadi satu dari seribu hal.

Bagi saya, saya awalnya mendorong master dan mengembangkan (master tidak memiliki perubahan) melalui SourceTree. Mengubah ini untuk berkembang hanya berhasil.

JakeSteam
sumber
1

Saya menghadapi kesalahan serupa yang mengunggah repo besar, "fatal: Remote control tiba-tiba menutup" tanpa rincian lebih lanjut.

Setelah banyak penelitian, inilah yang saya lakukan:

  • Menggunakan SSH alih-alih HTTPS, tidak memecahkan masalah.
  • Meningkatkan http.postBuffer secara bertahap hingga nilai yang sangat besar, masih belum berhasil.
  • Saya tahu mungkin karena file besar dalam repo (karena ini adalah repo yang baru dimigrasikan dari terpaksa), jadi saya membuat ulang repo menggunakan LFS, mengatur largeFileThreshold ke 40m, yang sangat mengurangi ukuran repo (dari 3.5G ke 500 juta). Saya pikir ini akan menyelesaikan masalah, tetapi saya terkejut saya masih menghadapi kesalahan yang sama.

Akhirnya, terpikir oleh saya bahwa mungkin saya menggunakan klien git yang lebih tua, karena saya tidak melihat pesan kesalahan tambahan. Saya meningkatkan klien git ke terbaru (2.20.1), dan voila, kesalahannya hilang!

Mahmoud Hanafy
sumber
Saya juga memiliki masalah ini (bermigrasi dari TFS). Saya memutakhirkan dari 2,19 menjadi 2,20 dan diperbaiki, pandangan sekilas melalui catatan rilis tidak mengungkapkan apa masalahnya.
George Richardson
Saya baru saja memutakhirkan ke 2.20.1.windows.1 dan masih tidak akan membiarkan saya mendorong ke repositori jarak jauh
Vidar
@Vidar Mungkin memeriksa file besar, GitHub memiliki batasan ketat 100MB help.github.com/articles/what-is-my-disk-quota ; Lihat bagian "Secara manual meninjau file besar di repositori Anda" di confluence.atlassian.com/bitbucket/… ; halaman itu sendiri adalah bacaan yang baik.
Mahmoud Hanafy
@ MahmoudHanafy - terima kasih - itu adalah parameter di web.config tentang ukuran file maks - tingkatkan itu dan git berperilaku dan semua orang senang! Ini bukan GitHub untuk saya, tetapi pribadi kami di situs Bonobo.Git.Server.
Vidar
0

Saya mendapatkan kesalahan ini ketika saya salah mengeja nama cabang jarak jauh saya

javaProgrammer
sumber
0

Saya bisa mengatasi masalah ini menggunakan Git Shell.

Setiap repositori dalam github.com memberi Anda URL HTTPS / SSH / Subversion yang dapat Anda gunakan untuk mengunduh menggunakan Shell, lihat di sini: http://prntscr.com/8ydguv .
Berdasarkan perubahan terbaru GitHub, SSH tampaknya menjadi metode terbaik.

Perintah untuk digunakan di Shell:

git clone "URL of repo goes here w/ no quotes"
David
sumber
Apa yang Anda maksud dengan "Git Shell"? Menggunakan gitdi terminal?
Karl Richter
0

Lakukan ini untuk melihat kunci yang Anda gunakan; ssh -vT [email protected]

Kemudian pastikan di build Anda, Anda menjalankan ini di awal. eval "$ (ssh-agent -s)" ssh-add ~ / .ssh / id_rsa

ddtraveller
sumber
0

1) cd ke dir proyek

2) git status

3) git checkout -f HEAD

4) konfirmasi kesuksesan dengan menarik master lagi untuk memastikan Anda up to date jika repo Anda terlihat tidak lengkap

Ini berfungsi jika Anda mendapatkan kesalahan yang dimaksud dari Visual Studio's Git ketika kloning repo dari Bitbucket

whyoz
sumber
0

Ini juga dapat terjadi jika salah satu dari komitmen yang Anda dorong cacat.

Saya (tanpa sadar) memiliki komit dengan bidang Email Pembuat yang salah, tetapi yang saya dapatkan hanyalah remote end hung uppesan kesalahan yang tidak jelas ini . Saya bisa mendorong cabang lain hanya saja bukan cabang yang satu ini , jadi saya mulai mendorong komit dari cabang "buruk" satu per satu sampai akhirnya saya mendarat di:

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'

Jadi sepertinya remote end hung up unexpectedlykesalahan adalah semacam "menelan" pesan kesalahan yang sebenarnya, yang mungkin semacam komit salah seperti yang saya miliki di sini.

Setelah memperbaiki email yang rusak saya bisa mendorong dengan baik.

mgalg
sumber
0

Saya tidak berpikir itu ide yang baik untuk melakukan itu tetapi jika Anda memiliki cadangan di mesin Anda .. dorong sekali lagi dan kemudian coba kloning repo dan kemudian hapus. Git dari direktori lama dan pindahkan. tetapi karena masalah ini beberapa file mungkin tidak dapat diunggah di git. Dorong kembali semua dari cadangan Anda lalu tarik ke server Anda atau mesin lain di mana ia bisa mengalir. Saat ini saya baru saja melakukan itu ... Bekerja untuk saya .. dan mengambil cadangan dir Anda sebelum melakukan ini.

Dan tolong perbaiki saya jika saya salah. Saya juga tidak tahu apa yang salah setelah melakukan ini? Tapi kali ini ini benar-benar berfungsi.

Sumit Rawat
sumber
0

masalah saya (fatal: Ujung jarak jauh terputus secara tak terduga) telah diatasi dengan memeriksa izin dan pemilik repositori.

pemilik file repositori git haruslah pengguna yang ingin Anda push / pull / clone dengannya.

Samir Sayyad
sumber
0

Tidak ada jawaban di atas yang berfungsi untuk saya, tetapi inilah yang berhasil.

1) hapus .git/dari proyek Anda
2) klon repo jarak jauh ke beberapa lokasi baru seperti desktop Anda. git clone https://github.com/foo/bar.git
3) pindah .git/dari lokasi baru ke lokasi lama
4) komit ulang dan dorong perubahan Anda

Ben
sumber
0

Penyebab masalah bagi saya adalah pengaturan jaringan: Saya memiliki kartu wifi "Pembunuh" yang ternyata tidak berkutat dengan paket jaringan dengan cara yang SSH dan SSL tidak suka.

Untuk memperbaiki masalah, saya harus masuk ke "Killer Control Center", "Parameters", dan nonaktifkan "Advanced Stream Detect" - perintah git mulai bekerja kembali secara instan.

Jean-Michaël Celerier
sumber