개발공부 & 부트캠프/깃(Git)

[깃] 깃허브에 대용량 파일 업로드하는 방법

포리셔 2023. 6. 26. 11:47

프로젝트를 위해 깃허브 등으로 코드와 파일을 공유하다 보면 간혹 깃허브의 파일 용량 제한에 걸려 난감해질 때가 있습니다. 이는 깃허브 자체적으로 25MB (공식 문서상으로는 100MB) 이상의 용량을 가진 파일을 업로드할 수 없게 해놓았기 때문이죠. 따라서 이런 대용량 파일을 공유하는 프로젝트를 사용하려면 어쩔 수 없이 다른 툴을 사용하거나, 컴퓨터에 깔린 깃에 추가적인 조치를 취할 수 밖에 없어집니다.
이번 포스트에서는 타 프로그램이나 플랫폼을 사용하지 않고 깃 자체적으로 대용량 파일을 업로드할 수 있는 방법을 소개하겠습니다.

NOTE_ 타 플랫폼의 경우 드랍박스(Dropbox)를 이용하는 것이 예시가 되겠습니다. 심지어 드랍박스는 깃허브 공식 문서에서 소개하고 있는 플랫폼이기도 합니다!
(출처: https://docs.github.com/ko/repositories/working-with-files/managing-large-files/about-large-files-on-github)

Git LFS

Git LFS 설치 사이트.

(https://git-lfs.com/)

Git LFS는 깃에서 대용량 파일을 처리할 수 있게끔 도와주는 툴입니다. 먼저 해당 링크로 들어가서 lfs를 먼저 설치해주세요.

설치가 끝났다면 git bash 등의 터미널 상에서 아래 커맨드를 순서대로 입력해줍니다.

CAUTION_ git bash를 실행하는 폴더(디렉터리)는 아래 커맨드를 실행하기 전에 반드시 git init을 통해 깃에 연동을 시켜주셔야 합니다!

git lfs install
git lfs track "*.zip"
git add .gitattributes

터미널에 표시되는 구문들. (참고: 저는 Visual Studio Code에 git bash를 연동시켜 놓았습니다. 따라서 순정 상태의 git bash와는 다소 차이가 있을 수 있습니다.)

이때 두번째 스크립트의 따옴표 안에 원하는 파일의 이름을 입력합니다. 저는 archive.zip라는 파일을 업로드하려고 합니다. 원하는 확장자의 모든 파일을 처리하고 싶을 때 위의 예시 코드처럼 *을 확장자 앞에 붙여서 처리할 수도 있습니다.
여기까지 처리하셨다면 일반적인 파일을 업로드할 때와 마찬가지로 add, commit, push 과정을 진행하면 파일이 업로드되는 것을 볼 수 있습니다.

깃허브 리포지터리에 업로드된 파일.

이렇게 업로드된 파일의 용량을 보면 (제 파일 기준으로) 약 19MB 기준으로 깃허브 업로드 기준을 만족했습니다. 이 파일의 압축을 해제하면 압축 이전의 원본 파일이 손실되지 않고 저장되어 있었습니다.