전공영역 공부 기록

실수로 용량이 큰 크기를 git push했을 때

악분 2022. 12. 14. 21:45
반응형

우연히 git pull이 너무 오래 걸려 원인을 분석해보니, 누군가 실수로 약 5GB되는 파이썬 패키지를 git push한 것을 발견했습니다. 그래서 해당 파일을 삭제하고 다시 git push를 했는데도.. 여전히 git 작업폴더 용량이 줄지 않았습니다.

 

좀더 분석해보니 작업폴더 문제가 아니라 git데이터가 저장된 .git/object폴더가 5GB라는 것을 확인했습니다.

ls -l .git/objects

 

objects폴더는 git 데이터(blob, tree 등)를 저장하는 파일입니다. git작업폴더에는 파일이 삭제되었지만 알 수 없는 이유로 파일의 데이터가 저장된 obejcts에는 제거가 안되었습니다. 그래서 강제로 objects폴더를 정리해줘야 했습니다.

# 모든 브랜치를 대상으로 검색에 일치한 파일을 삭제하고 git reindex
git filter-branch --index-filter 'git rm --cached --ignore-unmatch {파일이름}' -- --all

# git refs, logs 폴더 삭제
rm -Rf .git/refs/original
rm -Rf .git/logs/

# 불필요한 파일 정리
git gc --aggressive --prune=now

# 원격 브랜치 반영
git push -f origin master

 

참고자료

반응형