치명적 : 초기 EOF 치명적 : 인덱스 팩 실패 …를 사용하여

나는 googled하고 많은 솔루션을 찾았지만 나에게 도움이되지 않습니다.

LAN 네트워크에있는 원격 서버에 연결하여 한 시스템에서 복제하려고합니다.
다른 머신에서이 명령을 실행하면 오류가 발생합니다.
그러나 서버에서 git : //192.168.8.5 …를 사용하여 SAME clone 명령을 실행하면 정상적으로 작동합니다.

어떤 아이디어?

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

이 구성을 추가 .gitconfig했지만 도움 이 되지 않았습니다.
자식 버전 1.8.5.2.msysgit.0 사용

[core]
    compression = -1



답변

먼저 압축을 해제하십시오.

git config --global core.compression 0

다음으로, 정보의 양이 줄어드는 부분 복제를하겠습니다.

git clone --depth 1 <repo_URI>

작동하면 새 디렉토리로 이동하여 나머지 복제본을 검색하십시오.

git fetch --unshallow

또는 교대로

git fetch --depth=2147483647

이제 정기적으로 당기십시오.

git pull --all

1.8.x 버전에는 이러한 증상을 악화시키는 msysgit의 결함이 있다고 생각하므로 다른 옵션은 이전 버전의 git (<= 1.8.3, 생각합니다)으로 시도하는 것입니다.


답변

이 오류는 git의 메모리 요구에 발생할 수 있습니다. 당신은 당신의 글로벌 자식 설정 파일에 다음 라인을 추가 할 수 있습니다 .gitconfig에서 $USER_HOME그 문제를 해결하기 위해.

[core]
packedGitLimit = 512m
packedGitWindowSize = 512m
[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m


답변

마침내 해결 git config --global core.compression 9

BitBucket 이슈 스레드에서 :

나는 거의 다섯 번 시도했지만 여전히 발생합니다.

그런 다음 더 나은 압축을 사용하려고 시도했습니다.

git config --global core.compression 9

Git 문서에서 :

core.compression
정수 -1..9이며 기본 압축 수준을 나타냅니다. -1이 zlib 기본값입니다.
0은 압축이 없음을 의미하고 1..9는 다양한 속도 / 크기 트레이드 오프이며 9가 가장 느립니다.
설정하면 core.looseCompression 및 pack.compression과 같은 다른 압축 변수에 기본값이 제공됩니다.


답변

@ingyhere가 말했듯이 :

얕은 클론

먼저 압축을 해제하십시오.

git config --global core.compression 0

다음으로, 정보의 양이 줄어드는 부분 복제를하겠습니다.

git clone --depth 1 <repo_URI>

작동하면 새 디렉토리로 이동하여 나머지 복제본을 검색하십시오.

git fetch --unshallow

또는 교대로

git fetch --depth=2147483647

이제 잡아 당기십시오 :

git pull --all

그런 다음 현지 지점 전용 추적 마스터의 문제를 해결하려면

.git/config선택한 편집기에서 git config 파일 ( )을 엽니 다

그것이 말하는 곳 :

[remote "origin"]
    url=<git repo url>
    fetch = +refs/heads/master:refs/remotes/origin/master

줄을 바꾸다

fetch = +refs/heads/master:refs/remotes/origin/master

fetch = +refs/heads/*:refs/remotes/origin/*

git fetch를 수행하면 git이 모든 원격 브랜치를 가져옵니다.


답변

제 경우에는 이것이 매우 도움이되었습니다.

git clone --depth 1 --branch $BRANCH $URL

이렇게하면 체크 아웃이 언급 된 지점으로 만 제한되므로 프로세스 속도가 빨라집니다.

이것이 도움이되기를 바랍니다.


답변

나는 그 모든 명령을 시도했지만 아무것도 나를 위해 작동하지 않지만 git_url을 http 대신 ssh로 변경하는 것이 효과적이었습니다.

복제 명령 인 경우 :

git clone <your_http_or_https_repo_url>

그렇지 않으면 기존 리포지토리를 사용하는 경우

git remote set-url origin <your_http_or_https_repo_url>

이것이 누군가를 돕기를 바랍니다!


답변

git에 메모리가 부족하면이 오류가 발생했습니다.

약간의 메모리를 확보 (이 경우 컴파일 작업 완료)하고 다시 시도하면 나를 위해 일했습니다.