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ę.
-
Najpierw wyłącz kompresję Git.
git config --global core.compression 0
-
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/
-
Następnie pobierz resztę repozytorium.
git fetch - płytkie
-
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!