모종닷컴

Github에 파일 크기 및 리포지토리 크기 제한 본문

Programming

Github에 파일 크기 및 리포지토리 크기 제한

모종 2022. 8. 5. 20:15
반응형

깃허브에 용량이 큰 파일인 경우 블락당한다는 사실을 알고 계신가요?? 

용량이 큰 파일을 왜 제한하고 있는지, 큰 파일의 기준이 어떻게 되는지, 용량이 큰 파일을 어떻게 올릴 수 있는지를 한번 알아보도록 하겠습니다.

커밋 블로킹!

용량이 큰 파일을 제한하는 이유

GitHub에서는 사용자의 성능과 안정성을 보장하기 위해 전체에 대하여 리포지토리 상태(= repository health)를 모니터링하고 있으며. 리포지토리 상태 체크는 크기, 커밋 빈도, 커밋 내용, 커밋 구조를 보고 있습니다. 그리고 이 상태 체크에 커밋 파일 크기가 걸리는 걸로 보입니다.

이는 리포지토리의 크기를 작게유지하기 위함도 있는 것 같습니다. 깃허브에서 설명에 따르면 리포지토리의 크기는 1GB, 5GB 미만을 권장한다고 합니다. 리포지토리가 작을수록 복제가 더 빠르고 작업 및 유지 관리가 더 쉽다고 설명되어있습니다. 이 용량이 큰 리포지토리가 깃허브 전체 인프라에 과도하게 영향을 미치는 경우 GitHub에서 수정 조치를 취하는 이메일을 보낼 수도 있다고 하네요. 그렇죠.. 한 리포지토리로 인해서 다른 유저까지 영향을 받으면 안 되니까요... 그래서 Gradle이나 Maven이 필수적일 수도 있겠네요. 이 외부 종속성이 걸린 라이브러리들이 리포지토리에 그대로 들어가면 크기가 커질 테니!

파일 사이즈 제한

GitHub에서 체크하는 큰 용량의 기준은 50MB라고 합니다. 만약 50MB가 넘는 파일을 추가하거나 업데이트하는 커밋이 있다면 깃에서는 이걸 큰 파일이라고 보고 있는 거죠. 다만 50MB ~ 100MB 까지는 성공적으로 리포지토리에 푸시가 가능하고, 대신 warning 메시지를 받게 된다고 합니다. 결국 100MB를 초과하는 파일에 대하여 block을 하고 있다고 보시면 됩니다.

100MB가 넘는 파일을 올리고 싶다면

100MB가 넘는 파일을 리포지토리에 올리고 싶다면 Git LFS(Git Large File Storage)를 사용해야 합니다. LFS를 사용하게 되면 리포지토리에 직접 파일을 올리는 게 아니라 리포지토리에서 LFS에 올린 파일을 참조하는 방식으로 구성된다고 합니다. LFS에도 파일 제한이 걸리는 데 사용하는 GitHub Product에 따라 달라지게 됩니다.

Product Maximum file size
GitHub Free 2GB
GitHub Pro 2GB
GitHub Team 4GB
GitHub Enterprise Cloud 5GB

LFS를 사용하는 방법에 대해서 더 궁금한 부분이 있다면 아래를 참조하시면 될 것 같습니다. 

https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-git-large-file-storage

반응형

'Programming' 카테고리의 다른 글

멀티 모듈 설계 고민  (0) 2022.08.24
Postman 꿀팁 방출  (0) 2022.08.07
코틀린에서 소수 다루기  (0) 2022.08.04
테스트 코드는 버그를 찢어  (0) 2022.07.29
Intellij Code Inspection 사용하기  (0) 2022.07.24