Główna » Hosting » Naprawianie błędu krytycznego Git Clone „Early EOF”

    Naprawianie błędu krytycznego Git Clone „Early EOF”

    The “klon git” polecenie - jak sugeruje jego nazwa - umożliwia duplikowanie całego repozytorium ze zdalnego na lokalne lub odwrotnie. Chociaż jest to dość proste i proste polecenie git, czasami mogą pojawić się problemy.

    Na początku tego tygodnia zostałem dotknięty błędem podczas wykonywania klon git, a błąd wygląda następująco:

     błąd: obiekty-paczki zmarły z sygnału 9.20 MiB | Błąd 79,00 KiB / s: git upload-pack: git-pack-objects zginęło z błędem. fatal: git upload-pack: przerywanie z powodu możliwego uszkodzenia repozytorium po stronie zdalnej. zdalne: przerwanie z powodu możliwego uszkodzenia repozytorium po stronie zdalnej. fatal: wczesne EOF: 1% (66/3818), 6,04 MiB | 53,00 KiB / s

    Po kilku badaniach i debugowaniu, oto dwie główne przyczyny błędu krytycznego.

    1. Powolne połączenie internetowe

    Przyczyna błędu

    Repozytorium jest ogromne, a połączenie internetowe jest po prostu zbyt wolne.

    Wynikało to z mojego osobistego doświadczenia - próbowałem sklonować repozytorium o rozmiarze około 1,5 GB. Ciągle się nie sprawdzał z różną szybkością pobierania%, czasami po 20 MB, czasami po 60 MB, 200 MB itp..

    Rozwiązanie

    Pomaga w tym szybsze i bardziej stabilne połączenie internetowe. Dzięki szybszemu połączeniu udało mi się zbliżyć do 1,5 GB. W pewnym momencie jestem w stanie klonować bez żadnego błędu.

    2. Ogromne repozytorium

    Przyczyna błędu

    Repozytorium, które próbujesz sklonować, jest duże pod względem rozmiaru pliku. Podczas próby klonowania zdalny serwer po prostu nie ma wystarczającej ilości pamięci, aby poradzić sobie z wykonaniem.

    Rozwiązanie

    Obrót kompresji. Git klon częściowo. Kiedy się powiedzie, sklonuj resztę.

    1. Najpierw wyłącz kompresję Git.

      git config --global core.compression 0
    2. Następnie wykonaj częściowy klon repozytorium za pomocą --głębokość 1 parametr. Zastąpić nazwa_uż[email protected]/path/to/git_repo/ z rzeczywistą ścieżką do repozytorium.

      git clone â ?? głębia 1 ssh: // nazwa_uż[email protected]/path/to/git_repo/
    3. Następnie pobierz resztę repozytorium.

      git fetch - płytkie
    4. Na koniec zakończ go regularnym pociągnięciem.

      git fetch - płytkie

    Te metody rozwiązały mój problem. Mam nadzieję, że to pomoże!