반응형
큰파일로 인한 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
끗.
반응형