네이버 지도 api를 사용하던 중.. github에 업도드를 하려니 오류와 마주쳤다!
NMapsMap은 용량이 100MB를 넘는다. github은 100M 이상의 파일을 올리려고 하면 오류가 발생한다.
remote: error: this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
git-lfs
를 이용하여 대용량 파일을 추적한다.bfg
를 이용하여 기존 커밋내역에서 대용량 파일 기록을 제거한다.git-lfs
?
이를 적용하는 방법은 다음과 같다!
업로드를 하고자 하는 파일이 존재하는 Repository로 이동한다.
git lfs install
위의 명령어를 통해 lfs를 설치한다.
git rm -r --cached "대용량 파일 경로"
만약, 이전에 대용량 파일에 대한 git add 기록이 있다면, unstaging을 통해 git의 추적을 중지한다.
git lfs track "대용량 파일 경로"
대용량 파일 경로를 다시 추적한다.
add, commit, push
git add .gitattributes
lfs로 추적을 하는 파일은 .gitattributes
를 통해 관리되기 때문에 함께 add
되어야 한다.
git add "파일명"
git commit -m "커밋메세지"
git push origin main
하지만! 이미 기존에 대용량 파일을 포함하고 있는 commit을 한 경우, 계속해서 같은 오류가 발생한다. 이 때에는 bfg
를 통해 대용량 기존 커밋 내역에서 대용량 파일의 기록을 제거해 주어야 한다.
bfg 설치하기
홈페이지에서 bfg를 다운로드 한다.
https://rtyley.github.io/bfg-repo-cleaner/
or
brew install bfg
를 통해서도 다운받을 수 있다.
java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M
bfg-1.14.0.jar
: 자신이 다운받은 bfg의 버전을 적어주면 된다.
🚫 여기에서 Unable to access jarfile bfg-1.14.0.jar
라는 오류가 발생할 수 있다.
👉 해결방법은 정확한 경로를 적어주는 것이다.
일반적으로 brew를 통해 받으면, /usr/local/bin/bfg
라고 한다. 하지만 나의 경우엔 계속 찾을 수 없다고 나와서 홈페이지에서 홈브루를 다운 받은 후, 그 아이콘을 터미널로 가져와서 입력했다.
Warning : no large blobs matching criteria found in packfiles — does the repo need to be packed?
간혹 100MB 이상의 파일이 없다고 나오는 오류가 발생하기도 한다. 이럴 때에는 다음 명령어를 수행하고, 다시 2번을 입력한다.
git repack && git gc
다시 2번을 실행해서 성공하게 되면, 다음과 같은 문구가 뜬다.
git push origin main
이제 정상적으로 올라가는 것을 볼 수 있다.
길고 길었던 대용량 파일 NMapsMap github에 올리기 성공,,!
🔖참고
∙https://wooono.tistory.com/284
∙https://medium.com/@stargt/github에-100mb-이상의-파일을-올리는-방법-9d9e6e3b94ef
∙https://rtyley.github.io/bfg-repo-cleaner/
∙https://stackoverflow.com/questions/32428981/error-unable-to-access-jarfile-bfg-jar-bfg