git을 오랜기간 사용하고, 파일도 방대해지게 되면, 프로젝트 clone시 아래와 같은 에러메시지를 마주 할 경우가 생긴다.
$ git clone url
Cloning into 'remote_project'...
remote : Counting object: 1234567, done.
remote : Compressing object : 100%(1234567/1234567), done.
fatal : read error : Invalid argument, 411.01MiB | 2.00 MiB/s
fatal : early EOF
fatal : index-pack failed
원인
프로젝트 clone 간 너무 많은 데이터를 가져오게 되면서 메모리 부족 or 용량 부족 등의 상황에서 발생하게 된다.
해결
- 가장 우선적으로 git 최신 버전으로 업데이트(현재 v2.20.1)
- 메모리 부족
- 아래의 코드와 같이 .gitconfig에 추가
.gitconfig 파일[core]
packedGitLimit = 512m
packedGitWindowSize = 512m[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m
- 용량부족
- 해당 드라이브 용량을 확인하고 추가적으로 늘려 줌.
기타
- 해결 방법을 찾다 보면 아래와 같은 방법이 있다.
1. git config --global core.compression 0
2. git clone --depth 1 [repo_url]
3. git fetch --unshallow
or
3. git fetch --depth=2147483647
4. git pull --all
이 경우 pull 을 할때 Git refusing to merge unrelated histories 와 같은 에러 문구가 발생 하는 것을 확인 할 수 있을 것이다.