Mein git
Client schlägt wiederholt mit dem folgenden Fehler fehl, nachdem er einige Zeit versucht hat, das Repository zu klonen.
Was könnte hier das Problem sein?
Hinweis: Ich habe meinen SSH-Schlüssel beim GIT-Hosting-Anbieter registriert
Receiving objects: 13% (1309/10065), 796.00 KiB | 6 KiB/s
fatal: The remote end hung up unexpectedly
git config --global http.postBuffer 524288000
Auswirkungen auf Ihren Klon hat? Es gibt keine zusätzliche Fehlermeldung wie ein 'error: RPC failed; result=56, HTTP code = 0
'git config --global http.postBuffer 524288000
?Antworten:
Schnelle Lösung:
Bei dieser Art von Fehler beginne ich normalerweise damit, die
postBuffer
Größe zu erhöhen um:(Einige Kommentare unten berichten, dass der Wert verdoppelt werden muss):
Mehr Informationen:
Auf der
git config
Manpage gehthttp.postBuffer
es um:Selbst für den Klon kann dies Auswirkungen haben, und in diesem Fall berichtet der OP Joe :
Hinweis: Wenn auf der Serverseite ein Fehler aufgetreten ist und der Server Git 2.5+ (Q2 2015) verwendet, ist die Fehlermeldung möglicherweise expliziter.
Siehe " Git-Klonen: Remote-Ende hat unerwartet aufgelegt, versucht zu ändern, schlägt
postBuffer
aber immer noch fehl ".Kulai ( in den Kommentaren ) weist auf diese Atlassian Troubleshooting Git-Seite hin , die Folgendes hinzufügt:
Außerdem wird die folgende Umgebungsvariable erwähnt, um den Debugging-Prozess zu unterstützen.
Mit Git 2.25.1 (Februar 2020) wissen Sie mehr über diese
http.postBuffer
"Lösung".Siehe Commit 7a2dc95 , Commit 1b13e90 (22. Januar 2020) von Brian M. Carlson (
bk2204
) .(Zusammengeführt von Junio C Hamano -
gitster
- in Commit 53a8329 , 30. Januar 2020)( Diskussion der Git-Mailingliste )
Die Dokumentation für den
git config http.postBuffer
Moment enthält also:quelle
ssh://
.postBuffer
Einstellung einen Effekt auf einen Klon oder einen Abruf hat.Gleicher Fehler mit Bitbucket. Behoben von
quelle
Der http.postBuffer-Trick hat bei mir nicht funktioniert. Jedoch:
Für andere, bei denen dieses Problem auftritt, kann es ein Problem mit GnuTLS sein. Wenn Sie den ausführlichen Modus einstellen, wird der zugrunde liegende Fehler möglicherweise in Anlehnung an den folgenden Code angezeigt.
Leider ist meine einzige Lösung bisher die Verwendung von SSH.
Ich habe eine Lösung gesehen, die an anderer Stelle veröffentlicht wurde , um Git mit OpenSSL anstelle von GnuTLS zu kompilieren. Es gibt einen aktiven Fehlerbericht für das Problem hier .
quelle
100000000000000
Hinweis:
http.postBuffer
Zum Ändern muss möglicherweise auch die Nginx-Konfigurationsdatei für gitlab eingerichtet werden, um größere Körpergrößen für den Client zu akzeptieren, indem der Wert von client_max_body_size angepasst wird.Es gibt jedoch eine Problemumgehung, wenn Sie Zugriff auf den Gitlab-Computer oder einen Computer in seinem Netzwerk haben, und zwar mithilfe von
git bundle
.git bundle create my-repo.bundle --all
git clone my-repo.bundle
git remote set-url origin "path/to/your/repo.git"
git push
Alles Gute!
quelle
Das einzige, was für mich funktioniert hat, war, das Repo über den HTTPS- Link anstelle des SSH- Links zu klonen .
quelle
Wenn Sie https verwenden und den Fehler erhalten.
Ich habe https anstelle von http verwendet und es hat mein Problem gelöst
quelle
Basierend auf dieser Antwort habe ich Folgendes versucht (mit https-URL):
git clone --depth 25 url-here
git fetch --depth 50
git fetch --depth 100
git fetch --depth 200
...und so weiter
git fetch --unshallow
- und es ist geschafft.Der Prozess offensichtlich braucht viel mehr Zeit, aber in meinem Fall Einstellung
http.postBuffer
undcore.compression
hat nicht geholfen.UPD : Ich habe herausgefunden, dass das Abrufen über ssh für jede Repo-Größe (versehentlich entdeckt) funktioniert, vorausgesetzt
git clone <ssh url>
, Sie haben ssh-Schlüssel erstellt. Sobald das Repo abgerufen wurde, ändere ich die Remote-Adresse mitgit remote set-url <https url to repo>
quelle
Ich habe eine Lösung erhalten, nachdem ich den folgenden Befehl verwendet habe:
git repack -a -f -d --window=250 --depth=250
quelle
Ich habe das gleiche Problem, ich habe dies mit der Trial-and-Error-Methode behoben. Ich habe den Wert für core.compression geändert, bis er funktioniert.
Ich habe nach 3 Versuchen mit "git config --global core.compression 1" begonnen
"git config --global core.compression 4" hat bei mir funktioniert.
quelle
Dies ist auf das Problem mit der Internetverbindung zurückzuführen. Ich hatte das gleiche Problem. Ich habe eine flache Kopie des Codes mit erstellt
Später wurde der Klon mit geheiligt
quelle
in
/etc/resolv.conf
der Zeile am Ende der Datei hinzufügenquelle
Nun, ich wollte eine 219-MB-Lösung pushen, hatte aber kein Glück damit
Und was bringt es überhaupt, einen Postpuffer von 525 MB zu haben? Es ist dumm. Also habe ich mir den Git-Fehler unten angesehen:
Also will Git 5 MB posten, dann habe ich den Postpuffer auf 6 MB gesetzt und es funktioniert
quelle
Ich hatte das gleiche Problem und es hing mit einer schlechten Internetverbindung zusammen. Nach dem Versuch mit einigen Git-Konfigurationen habe ich mich gerade von meinem Netzwerk getrennt und wieder verbunden und es funktioniert!.
Es scheint, dass nach dem Verbindungsverlust (oder der Aktion, die diese Situation auslöst) Git stecken bleibt.
Ich hoffe, dass es jemandem hier mehr helfen könnte.
Beste,
quelle
Ich hatte auch das gleiche Problem. Der Grund für dieses Problem sind Kurtis 'Beschreibungen über GNUTLS.
Wenn Sie den gleichen Grund haben und Ihr System Ubuntu ist, können Sie dieses Problem lösen, indem Sie die neueste Version von git von installieren.
ppa:git-core/ppa
Die Befehle lauten wie folgt.quelle
apt-get git
??Ich hatte dieses Problem beim Klonen von Daten (über HTTP) von Remote-Git-Repo, das auf einer AWS EC2-Instanz gehostet wird, die von elastischer Beanstalk verwaltet wird. Das Klonen selbst wurde auch auf der AWS EC2-Instanz durchgeführt.
Ich habe alle oben genannten Lösungen und ihre Kombinationen ausprobiert:
http.postBuffer
http.maxrequestbuffer
git clone
und danngit fetch --unshallow
- siehe fatal: frühe EOF fatal: Index-Pack fehlgeschlagenpackedGitLimit
ua, siehe hier: fatal: früh EOF fatal: Index-Pack fehlgeschlagenclient_max_body_size
auf großen Wert und 0 (unbegrenzt); Rahmenproxy_request_buffering off;
options single-request
in /etc/resolv.confgit clone
Nach all dem war ich immer wieder mit dem gleichen Problem konfrontiert, bis ich feststellte, dass das Problem darin besteht, dass Elastic Load Balancer (ELB) die Verbindung trennt . Nachdem ich direkt auf die EC2-Instanz (die Hosting-Git-Repo) zugegriffen habe, anstatt ELB zu durchlaufen, habe ich es endlich geschafft, Git-Repo zu klonen! Ich bin mir immer noch nicht sicher, welcher der ELB-Parameter (Timeout) dafür verantwortlich ist, daher muss ich noch einige Nachforschungen anstellen.
AKTUALISIEREN
Es scheint, dass die Änderung der Verbindungsentlastungsrichtlinie für AWS Elastic Load Balancer durch Erhöhen des Zeitlimits von 20 Sekunden auf 300 Sekunden dieses Problem für uns behoben hat.
Die Beziehung zwischen dem
git clone
Fehlern und dem "Verbindungsabbau" ist seltsam und für uns nicht offensichtlich. Es kann sein, dass die Änderung des Verbindungsabbruchs einige interne Änderungen in der ELB-Konfiguration verursacht hat, die das Problem mit dem vorzeitigen Schließen der Verbindung behoben haben.Dies ist die verwandte Frage im AWS-Forum (noch keine Antwort): https://forums.aws.amazon.com/thread.jspa?threadID=258572
quelle
Ich hatte ein ähnliches Problem, aber mit einem Bambusjob. Bamboo konnte einen lokalen Klon (lokal, aber über einen SSH-Proxy) eines zwischengespeicherten Repositorys nicht ausführen. Ich habe den Cache gelöscht und danach hat es funktioniert, aber jedes Mal, wenn versucht wird, aus dem lokalen Cache zu klonen, ist ein Fehler aufgetreten. Scheint ein Problem mit der Bambus-Version des SSH-Proxys zu sein, die nicht per se git ist.
quelle
Ich habe den gleichen Fehler bei der Verwendung von BitBucket. Ich habe https aus der URL meines Repos entfernt und die URL mit festgelegt
HTTP
.quelle
Gelöst mit WLAN-Router Einstellung:
Ich habe das gleiche Problem, wenn ich mit den Einstellungen PPPoE (automatische Anmeldung per WLAN-Router) im WLAN bin.
Git Download-Geschwindigkeit ist sehr langsam 15kb.
packet_write_wait: Verbindung zu Port 17.121.133.16 22: Pipe gebrochen: Das Remote-Ende hat unerwartet schwerwiegend aufgelegt: Frühes EOF-Fatal: Indexpaket fehlgeschlagen
Lösung: 1. Einstellung auf Dynamic IP geändert, WLAN-Router neu starten. 2. Von der Webbrowser-Anmeldung zum Internetdienstanbieter-Portal (PPPoE nicht konfigurieren, automatische Anmeldung über den WLAN-Router).
Nach dem Ändern von Git beträgt die Download-Geschwindigkeit 1,7 MB.
quelle
Dies löste mein Problem:
quelle
Die obigen Tricks haben mir nicht geholfen, da das Repo größer war als die maximal zulässige Push-Größe bei Github. Was funktionierte, war eine Empfehlung von https://github.com/git-lfs/git-lfs/issues/3758, die vorschlug, jeweils ein bisschen zu pushen:
quelle
Verschwendete einige Stunden damit, einige dieser Lösungen auszuprobieren, führte dies jedoch schließlich auf ein Unternehmens-IPS (Instrusion Protection System) zurück, das die Verbindung nach der Übertragung einer bestimmten Datenmenge trennte.
quelle
Versuchen Sie für gemeinsam genutzte Bandbreite zu klonen, wenn die Last geringer ist. Versuchen Sie es andernfalls mit einer Hochgeschwindigkeitsverbindung. Wenn dies immer noch nicht funktioniert, verwenden Sie bitte den folgenden Befehl:
Und versuchen Sie erneut zu klonen. Möglicherweise müssen Sie diese Einstellungen entsprechend Ihrer verfügbaren Speichergröße ändern.
quelle
Es kann so einfach wie ein Serverproblem sein. Wenn Sie GitHub verwenden, überprüfen Sie https://twitter.com/githubstatus . Ich habe das gerade zum ersten Mal gesehen und festgestellt, dass GitHub wackelt . Ein paar Minuten später funktionierte es wieder gut.
quelle
Dies funktionierte für mich, indem ich den Googles-Nameserver einrichtete, da kein Standard-Nameserver angegeben wurde, gefolgt vom Neustart des Netzwerks:
quelle
Ich war mit diesem Problem bei der Verwendung von Git in Kubuntu konfrontiert. Ich habe auch eine allgemeine Instabilität im Netzwerk festgestellt und eine Lösung gefunden .
Diese festen Verzögerungen vor jeder Auflösung von Domainnamen und Git begannen danach wie ein Zauber zu wirken.
quelle
Ich habe festgestellt, dass mein Problem mit der .netrc-Datei zusammenhängt. Wenn ja, können Sie Folgendes tun:
Öffnen Sie Ihre .netrc-Datei und bearbeiten Sie sie so, dass sie Github-Anmeldeinformationen enthält. Geben Sie
nano ~/netrc
oder eingedit ~/netrc
Fügen Sie dann Folgendes hinzu: * machine github.com
Login Benutzername
Passwort SECRET
Maschine api.github.com
Login Benutzername
Passwort SECRET *
Sie können dort Ihr unformatiertes Passwort angeben, aber aus Sicherheitsgründen generieren Sie hier ein Authentifizierungstoken , das Github-Token Passwort und fügen Sie es anstelle Ihres Passworts ein.
Hoffe das hilft jemandem
quelle
Dies kann an der Größe der Commits liegen, die verschoben werden. Teilen Sie die Anzahl der Commits wie folgt auf:
Sehen Sie sich die letzten 5 Commits an und Sie würden wissen, welche nicht auf Remote übertragen werden. Wählen Sie eine Commit-ID aus und verschieben Sie alle Commits auf diese ID:
HINWEIS: Ich habe gerade mein Commit überprüft, das die größte Größe haben könnte. bis dahin zuerst hochgeschoben. Der Trick hat funktioniert. !!
quelle
Ich habe Git Push von meinem OS X El Capitan Mac aus gemacht. Ich habe den gleichen Fehler erhalten, ich habe alles versucht, um das zu beheben, was ich bei Google / Stackoverflow gefunden habe. In Bezug auf die Version verwende ich die neueste Version von Github, 2.7.4. Ich habe ein Projekt in meinem lokalen System erstellt und wollte, dass dies in meinem Github-Konto öffentlich ist. Die Projektgröße lag nicht bei 8 MB. Ich bemerkte, dass beim Verschieben einiger Dateien mit einer Größe von etwa 1,5 MB die Daten ordnungsgemäß übertragen wurden, bei großer Größe jedoch mit demselben Fehler fehlschlug.
Die einzige Option, die ich hatte, war, Änderungen in MB-Teilen zu pushen. Jetzt habe ich alle Änderungen vorangetrieben. Dies ist eine Problemumgehung für mich, bis ich die Lösung für diese Lösung gefunden habe.
Sie können also auch versuchen, Änderungen in mehreren Commits voranzutreiben. Wenn Sie mehrere Ordner haben, können Sie die Änderungen für jeden Ordner verschieben (wenn die Ordnergröße nicht groß ist).
Ich hoffe, dies wird Ihnen helfen, kontinuierlich an dem Projekt zu arbeiten.
quelle
Versuchen Sie angesichts des gleichen Problems, sich mit einem anderen Zweig zusammenzuschließen und ihn zu entfernen. Es funktioniert bei mir genauso.
quelle
Verwenden Sie
ssh
stattdessenhttp
, es ist keine gute Antwort auf diese Frage, aber zumindest funktioniert es für michquelle