git에 올려선 안 될 파일까지 커밋했을 경우 해결방법 (history에 올라간 파일 삭제, hprof)

yunjeong·2021년 7월 29일
0

git 삽질로그

목록 보기
1/3

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.

remote: error: File android/java_pid~~~.hprof is 407.24 MB; this exceeds GitHub's file size limit of 100.00 MB

리액트네이티브 개발을 하면서, 라이브러리 패키지 업데이트나 gradle 업그레이드를 했을 경우 가끔씩 hprof 파일이 생성됐다. 이는 자바 heap 덤프 파일이라고 하며 꽤 큰 용량을 가지고 있었다.

그래서 이것을 자칫 삭제하지 않고 커밋하면 push가 되지 않는 난감한 상황이 발생되었다.

그럴 때 쓸 수 있는 해결 방법이다.

$ git filter-branch --tree-filter 'rm -rf android/java_pid~~~.hprof**' HEAD

위 명령으로 Git이 해당 파일을 추적해 커밋되지 않도록 설정할 수 있다.


그러나 내 경우엔.. hprof 파일이 포함된 채로 커밋한 후 푸시가 안 돼 당황하다가 파일을 지워버리고.. 지운 기록까지 커밋해버렸다.. ^^;


그럴 땐 이 방법을 쓰면 된다.

Git 기록에서 파일을 영구적으로 삭제하는 방법이다.

$ git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch android/java_pid~~~.hprof' --prune-empty -- --all

실행하면 이렇게 Rewrite를 주루룩 한다.

$ git push --force --all

그다음 강제 푸시 해버리면 된다.

History를 확인해보면 골치였던 hprof 파일 기록이 싹 삭제되었을 것이다.

profile
거침없이 한 달음에!

0개의 댓글