본문 바로가기
오류 해결

[Git] 깃 오류 해결 There are too many unreachable loose objects; run 'git prune' to remove them

by 머그워트 2023. 7. 25.
728x90

node.js로 빌드하는 라이브러리를 쓰는 프로젝트에서

node_modules 폴더를 깃 로컬 리포에서 add했다가 다시 unstaging 시켜줬다.

node_modules는 빌드용이니까 보통 커밋에서 제외시키기 때문이다.

 

커밋에서 제외하기 위해 gitignore 처리를 해 줬는데, 캐시에서 사라지지 않아

git rm -r --cached 처리까지 해준 후 ignore가 완료되었다.

 

이렇게 캐시 삭제를 해줘도 로컬 깃 리포에 뭔가 내역이 남아 있던 건지…

원격 저장소의 내용을 불러오려고 git pull을 시도하니

There are too many unreachable loose objects; run 'git prune' to remove them 이라는 warning이 발생했다.

여러면 pull 시도를 해도 계속 같은 경고문이 떴다.

 

prune은 처음 보는 명령어라서 실행해도 되는지 잘 모르겠어서..

알아보니 prune은 로컬 저장소에서 더이상 유효하지 않은 것을 제거하는 작업으로 remote repository에는 영향이 없는 명령어였다.

그래도 실행이 망설여진다면 git prune --dry-run을 실행하면 실제 prune을 하는 게 아니라 실행 계획만 미리 볼 수 있다.

 

나는 이 명령어를 실행해 보니 추가됐었던 수많은 node_modules 내의 파일들이 prune 대상이라고 나왔다.

(수많은 blob들…)

 

역시 node_modules 내의 빌드 파일들이 문제였던 것이다.

git prune --verbose를 실행해 이것들을 로컬에서 지워줬다.

 

지운 후 다시 git pull을 시도하니 해당 경고가 나오지 않고 정상적으로 실행되었다

 

 

- 참고: https://seongjins.tistory.com/262

728x90

댓글