Correction de l'erreur fatale «Early EOFs» de Git Clone
le “Git Clone” commande - comme son nom l'indique - vous permet de dupliquer un référentiel entier de distant à local, ou inversement. Bien qu’il s’agisse d’une commande assez simple et directe, quelques problèmes peuvent parfois survenir..
Plus tôt cette semaine, une erreur m'a frappé lors de l'exécution Git Clone, et l'erreur ressemble à ceci:
erreur: pack-objets est mort du signal 9.20 MiB | 79.00 Erreur KiB / s: git upload-pack: les objets git-pack sont morts avec une erreur. fatal: git upload-pack: abandon en raison d'une possible corruption du référentiel du côté distant. remote: abandon en raison d'une possible corruption du référentiel du côté distant. fatal: débuts de fin de semaine: 1% (66/3818), 6,04 MiB | 53.00 KiB / s
Après quelques recherches et un débogage, voici les deux causes principales de l’erreur fatale.
1. Connexion Internet lente
Cause d'erreur
Le référentiel est énorme et la connexion Internet est tout simplement trop lente.
Cela vient de mon expérience personnelle - je tentais de cloner un référentiel d'environ 1,5 Go. Il a gardé échouer de manière incohérente à un taux différent de% téléchargé, parfois après 20 Mo, parfois après 60 Mo, 200 Mo, etc..
Solution
Passer à une connexion Internet plus rapide et plus stable aide. Avec une connexion plus rapide, j'ai pu me rapprocher de 1,5 Go. À un moment, je suis capable de cloner sans erreur.
2. énorme dépôt
Cause d'erreur
Le référentiel que vous essayez de cloner est volumineux, en termes de taille de fichier. Lors de la tentative de clonage, le serveur distant n’a tout simplement pas assez de mémoire pour exécuter l’exécution..
Solution
Tour de compression. Git clone partiellement. Quand c'est réussi, clone le reste.
-
Tout d'abord, désactivez la compression Git.
git config --global core.compression 0
-
Ensuite, faites un clone partiel du référentiel avec
--profondeur 1
paramètre. Remplacer[email protected]/path/to/git_repo/
avec le chemin réel vers le référentiel.git clone âProfondeur 1 ssh: //[email protected]/path/to/git_repo/
-
Ensuite, récupérez le reste du référentiel.
git fetch --unshallow
-
Enfin, terminez avec une traction régulière.
git fetch --unshallow
Ces méthodes ont résolu mon problème. J'espère que ça aide!