대용량 파일 github에 push할 때 생기는 오류 정복하기(feat. git-lfs, bfg)

네이버 지도 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.

#해결방법

  1. git-lfs를 이용하여 대용량 파일을 추적한다.
  2. bfg를 이용하여 기존 커밋내역에서 대용량 파일 기록을 제거한다.

1. git-lfs

git-lfs?

  • git-lfs는 100MB 이상의 파일이 있을 때 지정한 파일을 작게 조각내어 commit을 할 수 있도록 해주는 것이다.

이를 적용하는 방법은 다음과 같다!

  1. 업로드를 하고자 하는 파일이 존재하는 Repository로 이동한다.

  2. git lfs install

    위의 명령어를 통해 lfs를 설치한다.

  3. git rm -r --cached "대용량 파일 경로"

    만약, 이전에 대용량 파일에 대한 git add 기록이 있다면, unstaging을 통해 git의 추적을 중지한다.

  4. git lfs track "대용량 파일 경로"

    대용량 파일 경로를 다시 추적한다.

  5. add, commit, push

    1. git add .gitattributes

      lfs로 추적을 하는 파일은 .gitattributes를 통해 관리되기 때문에 함께 add되어야 한다.

    2. git add "파일명"

    3. git commit -m "커밋메세지"

    4. git push origin main

2. bfg

하지만! 이미 기존에 대용량 파일을 포함하고 있는 commit을 한 경우, 계속해서 같은 오류가 발생한다. 이 때에는 bfg를 통해 대용량 기존 커밋 내역에서 대용량 파일의 기록을 제거해 주어야 한다.

  1. bfg 설치하기

    홈페이지에서 bfg를 다운로드 한다.

    https://rtyley.github.io/bfg-repo-cleaner/

    or

    brew install bfg를 통해서도 다운받을 수 있다.

  2. 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라고 한다. 하지만 나의 경우엔 계속 찾을 수 없다고 나와서 홈페이지에서 홈브루를 다운 받은 후, 그 아이콘을 터미널로 가져와서 입력했다.

  3. Warning : no large blobs matching criteria found in packfiles — does the repo need to be packed?

    간혹 100MB 이상의 파일이 없다고 나오는 오류가 발생하기도 한다. 이럴 때에는 다음 명령어를 수행하고, 다시 2번을 입력한다.

    git repack && git gc

    다시 2번을 실행해서 성공하게 되면, 다음과 같은 문구가 뜬다.

  4. 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

좋은 웹페이지 즐겨찾기