Git - large files detected

문제 (요청)


Large files detected, 즉 100 메가를 넘는 파일github 에 올릴 수 없음.

 

해결


gihub 프로젝트에 push 하던 도중 large files detected 오류를 만나게 되었습니다.

위 오류는Large files detected, 즉 100 메가 넘는 파일을 github 으로 올리려고 해서 발생한 오류였습니다.

위 문제를 해결하기 위해선 filter-branch 를 통해 커밋 히스토리에서 100 메가 넘는 파일을 삭제해줘야 한다.

git filter-branch ==index-filter 'git rm --cached --ignore-unmatch path_to_file'

 

filter-branch 는 필터를 정의하고 정의된 필터에 커밋 하나 하나를 통과시켜 새로운 커밋으로 변경시켜 수정해줍니다.

커밋 히스토리에서 민감한 파일 혹은 디렉토리를 삭제해야 하는 경우 사용하는 명령어라고 합니다.

위 명령어에서 path_to_file 부분은 내가 지워버리고 싶은 파일이다.  지정된 파일을 모든 깃 히스토리를 돌면서 다 지워버립니다.

--index-filter 옵션은 트리를 돌지 않고 인덱스를 돌기 때문에 --tree-filter 옵션보다 더 빠르다고 합니다.

--cached 옵션은 working directory 에서는 그대로 두고 staging index 에서만 지워줍니다.

--ignore-unmatch 옵션은 대상이 되는 파일이 존재하지 않는 commit 에서도 error가 발생하지 않고 그냥 무시합니다.

 

참고한 사이트

How Remove Files completely from git repository history

과거를 지우고 싶어요 - git history

  • share