yarn berry를 패키지 매니저로 사용하는 프로젝트에서 로컬 작업 내용을 리모트 환경으로 push 할때 다음과 같이 에러가 발생하면서 push되지 않는 상황을 마주했다.
remote: error: File .yarn/unplugged/@next-swc-darwin-arm64-npm-13.3.1-29d0864b6b/node_modules/@next/swc-darwin-arm64/next-swc.darwin-arm64.node is 100.29 MB; 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.
위의 에러 내용을 확인해 보면, 깃허브에서는 최대 100MB까지 저장 용량을 제공하고 있지만, push하는 내용이 100MB를 넘는 대용량 파일을 보유하고 있다는 것을 확인할 수 있었고, 깃에서 이런 대용량 파일 관리를 위해서 lfs라는 툴을 제공하고 있다는 사실을 알게 되었다.
lfs는 트래킹 설정한 대용량 파일은 대용량 파일 저장소에 저장을 하고 나머지 트래킹 설정하지 않은 파일들만 remote 저장소로 저장하도록 할 수 있다.
lfs를 적용하기 위해서 다음과 같은 순서로 적용하면 된다.
brew install git-lfs
git lfs install
git lfs track ".yarn/*"
git add .gitattributes
git commit -m '~~'
git push origin main
위의 설정을 진행해도 push가 되지않고 같은 에러가 발생한다면 프로젝트 내의 git 초기화하면 정상적으로 동작한다.