Git-Klon-Fehler Early EOFs behoben
Das “Git Klon” Mit dem Befehl - wie der Name schon sagt - können Sie ein gesamtes Repository von Remote auf Local kopieren oder umgekehrt. Obwohl es sich um einen ziemlich einfachen und direkten Befehl handelt, können manchmal Probleme auftreten.
Anfang dieser Woche wurde ich bei der Ausführung mit einem Fehler getroffen Git Klon, und der Fehler sieht wie folgt aus:
Fehler: Pack-Objekte starben an Signal 9.20 MiB | 79.00 KiB / s Fehler: git upload-pack: git-pack-objects sind mit einem Fehler gestorben. fatal: git upload-pack: Abbruch wegen möglicher Repository-Korruption auf der Remote-Seite. remote: Abbruch wegen möglicher Repository-Korruption auf der Remote-Seite. tödlich: frühe EOFs: 1% (66/3818), 6,04 MiB | 53,00 KiB / s
Nach einigem Nachforschen und Debuggen sind hier die zwei Hauptursachen für den schwerwiegenden Fehler.
1. Langsame Internetverbindung
Fehlerursache
Das Repository ist riesig und die Internetverbindung ist einfach zu langsam.
Dies kam aus meiner persönlichen Erfahrung - ich habe versucht, ein Repository von etwa 1,5 GB zu klonen. Bei unterschiedlichen Downloadraten%, manchmal nach 20 MB, manchmal nach 60 MB, 200 MB etc.
Lösung
Der Wechsel zu einer schnelleren und stabileren Internetverbindung hilft. Mit einer schnelleren Verbindung konnte ich näher an 1,5 GB herankommen. An einer Stelle kann ich ohne Fehler klonen.
2. Großes Repository
Fehlerursache
Das Repository, das Sie zu klonen versuchen, ist hinsichtlich der Dateigröße groß. Beim Versuch, es zu klonen, verfügt der Remote-Server einfach nicht über genügend Arbeitsspeicher, um mit der Ausführung fertig zu werden.
Lösung
Kompression drehen. Git-Klon teilweise. Wenn es erfolgreich ist, klonen Sie den Rest.
-
Deaktivieren Sie zunächst die Git-Komprimierung.
git config --global core.compression 0
-
Dann machen Sie einen partiellen Klon des Repositorys mit
--Tiefe 1
Parameter. Ersetzen[email protected]/path/to/git_repo/
mit dem tatsächlichen Pfad zum Repository.git klon âTiefe 1 ssh: //[email protected]/path/to/git_repo/
-
Rufen Sie als Nächstes den Rest des Repositorys ab.
Git holen --unshallow
-
Beenden Sie es schließlich mit einem regulären Zug.
Git holen --unshallow
Diese Methoden haben mein Problem gelöst. Ich hoffe es hilft!