SW 개발

[git] github - Large files detected 관련 에러처리

. . . 2019. 10. 24. 19:00
반응형

큰파일로 인한 github 업로드 이슈

github 업로드하다가 다음과같은 메시지가 뜬다면, github repo (history포함) 큰파일이 있다는것이다.

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: 1c1b1a3269f248a40666cd7eeedb31e8
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File xxx.tar.gz is 240.97 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File yyy.tar.gz is 119.06 MB; this exceeds GitHub's file size limit of 100.00 MB

해당문제가 생기는이유는 100MB 이상 올릴려면 추가금을 내던가, git-LFS 를 사용해야한다.

하지만 역시나 과금의 이슈도 그렇고, 그렇다고 100M 바이너리를 한번에 통째로 올리는것도 좀 비효율적이니 문제를 해결해보도록하자.

히스토리 포함 큰파일 모두 지우기

1. 큰파일찾기

일단, 해당 repo 에서 파일사이즈가 100MB 이상되는녀석들을 찾자

find . -type f -size +100M

2. git rm 으로 파일지우기

위의 명령어를 통해서 나온 파일들을 git rm 명령어로 삭제후 git commit -a 하자.

git rm 명령어로 수동삭제한다.

3. BFG 이용하여 repo 정리하기

https://rtyley.github.io/bfg-repo-cleaner/ 사이트에서 파일을 받자

위의 다운로드 버튼을 누르면 다운받아진다.

지우고자하는 repo의 상위폴더 (repo 안에서 실행하면 꼬일수있으니 repo 밖에서 하자.) 에서 다음의 명령어를 치자.

java -jar {다운받은파일명}.jar --strip-blobs-bigger-than 100M {타겟 repo.git 경로}

위의 명령어를 실행하기 되면, 뭐 어쩌고저쩌고하면서 100M 보다큰 (github 에 업로드불 가능한 파일들) 파일들만 history 포함 깨끗하게 삭제된다.

이후에 repo 다시 이동하여.. 다음의 명령어를 치면된다.

git reflog expire --expire=now --all && git gc --prune=now --aggressive

4. github 업로드하기

업로드하면된다.

github 업로드 방법은 다음의 링크를 참고한다. (업로드라기보다는 동일 repo 를 복제해서 올리는게 좋다. - 기존히스토리도 모두 같이올라가니깐 ...) - https://xenostudy.tistory.com/541

끗.

반응형