Domovská » Hosting » Oprava chyby Git Clone “Early EOFs” Fatal Error

    Oprava chyby Git Clone “Early EOFs” Fatal Error

    “klon git” Příkaz - jak naznačuje jeho název - umožňuje duplikovat celé úložiště ze vzdáleného na místní nebo naopak. I když se jedná o poměrně jednoduchý a přímočarý příkaz, někdy se mohou vyskytnout problémy.

    Začátkem tohoto týdne jsem byl při provádění zasažen chybou klon git, a chyba vypadá takto:

     error: pack-objects zemřel na signál 9.20 MiB | 79,00 KiB / s chyba: git upload-pack: objekty git-pack-umřely s chybou. fatální: git upload-pack: přerušení kvůli možnému poškození úložiště na vzdálené straně. vzdálené: přerušení kvůli možnému poškození úložiště na vzdálené straně. fatální: časné EOF: 1% (66/3818), 6,04 MiB | 53,00 KiB / s

    Po nějakém výzkumu a ladění jsou zde dvě hlavní příčiny fatální chyby.

    1. Pomalé připojení k Internetu

    Příčina chyby

    Úložiště je obrovské a připojení k internetu je prostě příliš pomalé.

    Vycházelo to z mé osobní zkušenosti - pokoušel jsem se naklonovat úložiště o velikosti přibližně 1,5 GB. Nepodařilo se to nekonzistentně při různých rychlostech stahování%, někdy po 20 MB, někdy po 60 MB, 200 MB, atd.

    Řešení

    Pomáhá rychlejší a stabilnější připojení k Internetu. Díky rychlejšímu připojení jsem se mohl přiblížit k 1,5Gb. Na jednom místě jsem schopen klonovat bez jakékoli chyby.

    2. Obrovské úložiště

    Příčina chyby

    Úložiště, které se pokoušíte klonovat, je velké, pokud jde o velikost souboru. Při pokusu o klonování vzdálený server prostě nemá dostatek paměti, aby se vyrovnal s prováděním.

    Řešení

    Otočení komprese. Git klon částečně. Když je to úspěšné, zbytek klonujte.

    1. Nejprve vypněte kompresi Git.

      git config --global core.compression 0
    2. Poté proveďte částečný klon úložiště --hloubka 1 parametr. Nahradit [email protected]/path/to/git_repo/ se skutečnou cestou k úložišti.

      git clone â ?? hloubka 1 ssh: //[email protected]/path/to/git_repo/
    3. Dále načtěte zbytek repozitáře.

      git fetch --unshallow
    4. Nakonec to dokončete pravidelným tahem.

      git fetch --unshallow

    Tyto metody vyřešily můj problém. Doufám, že to pomůže!