Poszukałem go i znalazłem wiele rozwiązań, ale żadne z nich nie działa dla mnie.
Próbuję sklonować z jednego komputera, łącząc się ze zdalnym serwerem znajdującym się w sieci LAN.
Uruchomienie tego polecenia z innego komputera powoduje błąd.
Ale uruchomienie komendy SAME clone przy użyciu git: //192.168.8.5 ... na serwerze jest w porządku i udane.
Jakieś pomysły ?
user@USER ~
$ git clone -v git://192.168.8.5/butterfly025.git
Cloning into 'butterfly025'...
remote: Counting objects: 4846, done.
remote: Compressing objects: 100% (3256/3256), done.
fatal: read error: Invalid argument, 255.05 MiB | 1.35 MiB/s
fatal: early EOF
fatal: index-pack failed
Dodałem tę konfigurację, .gitconfig
ale nie ma też pomocy.
Korzystanie z wersji git 1.8.5.2.msysgit.0
[core]
compression = -1
Odpowiedzi:
Najpierw wyłącz kompresję:
Następnie wykonajmy częściowy klon, aby obciąć ilość informacji, które spadają:
Gdy to zadziała, przejdź do nowego katalogu i odzyskaj resztę klonu:
lub na przemian
Teraz wykonuj regularne pociągnięcia:
Wydaje mi się, że w wersji 1.8.x występuje usterka związana z msysgit, która zaostrza te objawy, więc inną opcją jest wypróbowanie wcześniejszej wersji git (<= 1.8.3, jak sądzę).
źródło
git clone --depth 1 git@host:user/my_project.git
.git pull --all
nie działa. Z uwagi nagit clone --depth 1
to ustawi zakres pobierania tylko jedną gałąź. Więc najpierw musimy edytować .git / config.Ten błąd może wystąpić w związku z potrzebą pamięci git. Możesz dodać te linie do swojego pliku konfiguracyjnego globalnego git, która jest
.gitconfig
w$USER_HOME
, aby rozwiązać ten problem.źródło
remote: Enumerating objects: 43, done. remote: Counting objects: 100% (43/43), done. remote: Compressing objects: 100% (24/24), done. error: inflate returned -55/26) fatal: unpack-objects failed
w końcu rozwiązany przez
git config --global core.compression 9
Z wątku wydania BitBucket:
Z dokumentacji Git:
źródło
git repack
w połączeniu z tym rozwiązaniem, a potem zadziałało.--compression 0
nie działał ani nie wszystkie.gitconfig
sugerowane powyżej zmiany.Jak powiedział @ingyhere:
Shallow Clone
Najpierw wyłącz kompresję:
Następnie wykonajmy częściowy klon, aby obciąć ilość informacji, które spadają:
Gdy to zadziała, przejdź do nowego katalogu i odzyskaj resztę klonu:
lub na przemian
Teraz wykonaj ciąg:
Następnie, aby rozwiązać problem lokalnego mistrza śledzenia tylko oddziału
otwórz plik konfiguracyjny git (
.git/config
) w wybranym edytorzegdzie jest napisane:
zmień linię
do
Wykonaj pobieranie git, a git pociągnie teraz wszystkie twoje zdalne gałęzie
źródło
W moim przypadku było to bardzo pomocne:
Ograniczy to kasy tylko do wspomnianej gałęzi, a tym samym przyspieszy proces.
Mam nadzieję, że to pomoże.
źródło
Próbowałem wszystkich tych poleceń i żadne nie działa dla mnie, ale to, co zadziałało, zmieniło git_url na http zamiast ssh
Jeśli polecenie klonowania to:
w przeciwnym razie, jeśli korzystasz z istniejącego repozytorium, zrób to z
mam nadzieję, że to komuś pomoże!
źródło
https
a następnie ustaw zdalny z powrotem nassh
.Wystąpił ten błąd, gdy w git zabrakło pamięci.
Zwolnienie pamięci (w tym przypadku: zakończenie pracy kompilacji) i ponawianie próby zadziałało dla mnie.
źródło
W moim przypadku był to problem z połączeniem. Byłem podłączony do wewnętrznej sieci Wi-Fi, w której miałem ograniczony dostęp do zasobów. To pozwoliło gitowi pobrać, ale w pewnym momencie się zawiesił. Oznacza to, że może to być problem z połączeniem sieciowym. Sprawdź, czy wszystko działa poprawnie: antywirus, zapora sieciowa itp.
Odpowiedź elin3t jest zatem ważna, ponieważ ssh poprawia wydajność pobierania, dzięki czemu można uniknąć problemów z siecią
źródło
Ustawienie poniższej konfiguracji nie działa dla mnie.
Jak poprzedni komentarz, może to być problem z pamięcią git. Dlatego staram się zmniejszyć działające wątki (z 32 do 8). Aby nie pobierało dużo danych z serwera w tym samym czasie. Następnie dodaję też „-f”, aby wymusić synchronizację innych projektów.
Więc teraz działa dobrze.
źródło
Poprzednia odpowiedź zaleca ustawienie 512m. Powiedziałbym, że istnieją powody, by sądzić, że przy architektury 64-bitowej przynosi to efekt przeciwny do zamierzonego. Dokumentacja core.packedGitLimit mówi:
Jeśli chcesz go wypróbować, sprawdź, czy go masz, a następnie usuń ustawienie:
źródło
Zauważ, że Git 2.13.x / 2.14 (III kwartał 2017) podnosi wartość domyślną,
core.packedGitLimit
co ma wpływgit fetch
:Domyślna wartość graniczna upakowanego git została podniesiona na większych platformach ( z 8 GiB do 32 GiB ), aby uchronić się
git fetch
przed awarią (możliwą do odzyskania) podczas gdy „gc
” działa równolegle.Zobacz commit be4ca29 (20 kwietnia 2017 r.) Autor: David Turner (
csusbdt
) .Pomoc: Jeff King (
peff
) .(Połączone przez Junio C. Hamano -
gitster
- w commit d97141b , 16 maja 2017 r.)źródło
Korzystając z odpowiedzi @cmpickle, zbudowałem skrypt, aby uprościć proces klonowania.
Znajduje się tutaj: https://gist.github.com/gianlucaparadise/10286e0b1c5409bd1049d67640fb7c03
Możesz uruchomić go za pomocą następującego wiersza:
źródło
W moim przypadku problemem nie był żaden parametr konfiguracyjny git, ale fakt, że moje repozytorium miało jeden plik przekraczający maksymalny dozwolony rozmiar pliku w moim systemie. Byłem w stanie to sprawdzić, próbując pobrać duży plik i uzyskać „Przekroczony limit rozmiaru pliku” na Debianie.
Następnie edytowałem mój plik /etc/security/limits.conf, dodając i na końcu następujące wiersze: * hard fsize 1000000 * soft fsize 1000000
Aby faktycznie „zastosować” nowe wartości graniczne, musisz się ponownie zalogować
źródło
Stycznie powiązane i przydatne tylko w przypadku, gdy nie masz dostępu do roota i ręcznie wyodrębnij Git z RPM (z rpm2cpio) lub innego pakietu (.deb, ..) do podfolderu. Typowy przypadek użycia: próbujesz użyć nowszej wersji Git zamiast przestarzałej na serwerze korporacyjnym.
Jeśli klon git nie powiedzie się
fatal: index-pack failed
bez wcześniejszej wzmianki o EOF, ale zamiast tego pojawi się komunikat o pomocyusage: git index-pack
, występuje niezgodność wersji i musisz uruchomić git z--exec-path
parametrem:Aby stało się to automatycznie, określ w
~/.bashrc
:źródło
Miałem te same dzienniki błędów, używając git (v2.17.1) nad ssh. W moim przypadku rozwiązaniem jest:
git gc
.Zobacz dokumentację git-gc: https://git-scm.com/docs/git-gc .
Na przykład:
Teraz mogę sklonować to repozytorium bez błędów, np. Po stronie klienta:
Polecenie
git gc
może pomóc wywoływane po stronie klienta git, aby uniknąć podobnegogit push
problemu.Innym rozwiązaniem (hack) jest pobieranie ostatniego wzorca bez historii:
Istnieje prawdopodobieństwo, że przepełnienie bufora nie nastąpi.
źródło
W moim przypadku nic nie działało, gdy protokołem był https, potem przełączyłem się na ssh i upewniłem się, że wyciągnąłem repo z ostatniego zatwierdzenia, a nie całej historii, a także konkretnej gałęzi. Pomogło mi to:
git clone --depth 1 "ssh: .git" --branch „specific_branch"
źródło
W międzyczasie wyłączyłem wszystkie pobierane pliki, co prawdopodobnie zwolniło trochę miejsca i wyczyściło przepustowość w górę / w dół
źródło
Wydaje się, że problem git-demona został rozwiązany w wersji v2.17.0 (zweryfikowany z niedziałającym v2.16.2.1). Oznacza to, że obejście wyboru tekstu w konsoli w celu „zablokowania bufora wyjściowego” nie powinno być dłużej wymagane.
Od https://github.com/git/git/blob/v2.17.0/Documentation/RelNotes/2.17.0.txt :
źródło
Mam ten sam problem. Po wykonaniu pierwszego kroku udało mi się sklonować, ale nie mogę zrobić nic więcej. Nie można pobierać, wyciągać ani kasować starych gałęzi.
Każde polecenie działa znacznie wolniej niż zwykle, a następnie umiera po skompresowaniu obiektów.
Dzieje się tak również wtedy, gdy twoi sędziowie używają zbyt dużo pamięci. Przycinanie pamięci naprawiło to dla mnie. Po prostu dodaj limit tego, co pobierasz, więc ->
Spowoduje to pobranie plików, ale z ich ostatnimi 100 edycjami w ich historii. Następnie możesz wykonać dowolne polecenie z normalną szybkością.
źródło
Wypróbowałem większość odpowiedzi tutaj, otrzymałem błąd z klientem PUTTY SSH ze wszystkimi możliwymi konstelacjami.
Po przejściu na OpenSSH błąd zniknął (usuń zmienną środowiskową GIT_SSH i zrestartuj git bash).
Używałem nowej maszyny i najnowszych wersji git. Na wielu innych / starszych maszynach (również AWS) działało to zgodnie z oczekiwaniami również z PUTTY bez żadnej konfiguracji git.
źródło
Mam ten sam problem. REPO było zbyt duże, aby można je było pobrać przez SSH. Tak jak zalecane @ elin3t, sklonowałem przez HTTP / HTTPS i zmieniłem ZDALNY URL w .git / config, aby używać SSH REPO.
źródło
Po uruchomieniu mam ten sam problem, co poniżej
git pull
Potem sprawdziłem:
git status
Było tak wiele niezaangażowanych zmian, że naprawiłem problem, zatwierdzając i wypychając wszystkie niezaangażowane zmiany.źródło
Żadne z powyższych rozwiązań nie działało dla mnie.
Rozwiązaniem, które w końcu działało dla mnie, było przełączenie klienta SSH. Zmienna środowiskowa GIT_SSH została ustawiona na OpenSSH dostarczoną przez Windows Server 2019. Wersja 7.7.2.1
C:\Windows\System32\OpenSSH\ssh.exe
Po prostu zainstalowałem kit 0,72
choco install putty
I zmieniłem GIT_SSH na
C:\ProgramData\chocolatey\lib\putty.portable\tools\PLINK.EXE
źródło
Próbowałem prawie wszystkich podanych tu sugestii, ale żadna nie działała. Dla nas problem był temperamentalny i stawał się coraz gorszy wraz ze wzrostem liczby repozytoriów (w naszym niewolniczym kompilatorze Windows Jenkinsa).
Ostatecznie jest to wersja ssh używana przez git. Git został skonfigurowany do korzystania z niektórych wersji Open SSH, określonych w pliku .gitconfig użytkowników za pomocą zmiennej core.sshCommand. Usunięcie tej linii naprawiło to. Wierzę, że dzieje się tak, ponieważ system Windows jest teraz wyposażony w bardziej niezawodną / kompatybilną wersję SSH, która jest domyślnie używana.
źródło
Działa to dla mnie, konfigurowanie serwera nazw Googles, ponieważ nie określono standardowego serwera nazw, a następnie restartowanie sieci:
źródło
Z klona Git otrzymywałem:
Po ponownym uruchomieniu komputera mogłem dobrze sklonować repo.
źródło
Jeśli korzystasz z systemu Windows, możesz chcieć sprawdzić, czy klon git nie powiódł się z powodu niepowodzenia pakietu „index-pack”? .
Zasadniczo po uruchomieniu
git.exe daemon ...
polecenia wybierz tekst z tego okna konsoli. Ponów próbę ciągnięcia / klonowania, może już działać!Zobacz tę odpowiedź, aby uzyskać więcej informacji.
źródło
Upewnij się, że na dysku jest wystarczająco dużo miejsca
źródło
Żadne z nich nie działało dla mnie, ale załatwienie problemu przy pomocy wbudowanego narzędzia Heroku.
Dokumentacja tutaj: https://devcenter.heroku.com/articles/git-clone-heroku-app
źródło