Homepage » Ospitando » Correzione dell'errore fatale di Git Clone Early EOF

    Correzione dell'errore fatale di Git Clone Early EOF

    Il “git clone” comando - come suggerisce il nome - consente di duplicare un intero repository da remoto a locale o viceversa. Sebbene sia un comando git abbastanza semplice e diretto, a volte possono ancora sorgere problemi.

    All'inizio di questa settimana, sono stato colpito da un errore durante l'esecuzione git clone, e l'errore è simile al seguente:

     errore: oggetti pack sono morti del segnale 9.20 MiB | 79.00 Errore KiB / s: git upload-pack: git-pack-objects è morto con errori. fatale: git upload-pack: interruzione dovuta a possibile corruzione del repository sul lato remoto. remote: interruzione a causa di possibili corruzioni del repository sul lato remoto. fatale: primi EOF: 1% (66/3818), 6.04 MiB | 53,00 KiB / s

    Dopo alcune ricerche e debug, ecco le due cause principali dell'errore fatale.

    1. Connessione Internet lenta

    Causa dell'errore

    Il repository è enorme e la connessione a Internet è semplicemente troppo lenta.

    Questo deriva dalla mia esperienza personale: stavo tentando di clonare un repository di circa 1,5 GB. Continuava a fallire in modo discontinuo a diversi livelli di% scaricato, a volte dopo 20 Mb, a volte dopo 60 Mb, 200 Mb, ecc..

    Soluzione

    È utile passare a una connessione a Internet più veloce e più stabile. Con una connessione più veloce, sono stato in grado di avvicinarmi a 1,5 Gb. A un certo punto sono in grado di clonare senza errori.

    2. Enorme repository

    Causa dell'errore

    Il repository che stai cercando di clonare è grande, in termini di dimensioni del file. Durante il tentativo di clonarlo, il server remoto non ha abbastanza memoria per far fronte all'esecuzione.

    Soluzione

    Svolta di compressione Clonare Git parzialmente. Quando ha successo, clona il resto.

    1. Innanzitutto, disattiva la compressione Git.

      git config --global core.compression 0
    2. Quindi eseguire un clone parziale del repository con --profondità 1 parametro. Sostituire [email protected]/path/to/git_repo/ con il percorso effettivo del repository.

      git clone â ?? depth 1 ssh: //[email protected]/percorso/to/git_repo/
    3. Quindi, recuperare il resto del repository.

      git fetch --unshallow
    4. Finalmente, finisci con un tiro regolare.

      git fetch --unshallow

    Questi metodi hanno risolto il mio problema. Spero che sia d'aiuto!