경험의 기록

 

프로젝트를 마무리하고 레포를 옮기기 위해

깃랩에 올라가 있는 프로젝트를 클론했는데

 

클론 후 별도로 빌드하지 않았음에도

사이트에서 본 용량(280MB) 보다 용량이 훨씬 큰 것(430MB)을 보고 뭔가 이상함을 느꼈다.

 

깃에서는 히스토리에서 모든 파일들을 관리하는데

알고보니 예전에 실수로 올렸던 대용량 파일 기록이 히스토리 용량을 많이 차지하고 있었던 것이다.

 

그로인해 깃허브 파일 업로드 용량을 초과해서 레포를 옮길 수 없었다.

 

그래서 깃 파일의 용량을 줄이기 위해 2가지 방법을 사용했다.

 

 

1️⃣ git gc --aggressive --prune=now

git gc --aggressive --prune=now

gc(Garbage Collection) 명령어는 저장소에서 필요없는 파일을 삭제해준다.

자바 사용자들이라면 익숙할 것이다.

 

하지만 직접 실행하지 않아도 깃이 어느 때가 되면 자동으로 실행하기 때문에

크게 용량이 감소하는 효과를 볼 수 없었다. (430MB -> 390MB)

 

 

 

2️⃣ 히스토리 파일 삭제

근본적으로 히스토리에 있는 파일 자체를 삭제해야한다.

 

git filter-branch --tree-filter 'rm 삭제할파일' HEAD
git filter-branch --tree-filter 'rm -rf 삭제할폴더' HEAD

위 명령어는 모든 히스토리에서 입력한 이름의 파일 or 폴더를 삭제해준다.

 

git push origin master --force

작업이 완료되면 강제로 푸시하여 리모트 저장소에 적용한다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading