빙수왕의 개발일지

LFS (Git Large File Storage) 본문

개발/그 외

LFS (Git Large File Storage)

빙수킹 2021. 12. 15. 01:37

LFS란?

 

LFS는 Git Large File Storage의 약자로,

깃에서 큰!! 파일을 업로드하거나 다운로드할 때 사용하는 오픈소스 Git Extension이다.

원래 GitHub에서는 파일 1개 당 용량이 50mb을 넘으면 warning, 100mb를 넘으면 error을 뱉는다.

참조

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

 

LFS는 어떤 원리인가?

 

Git LFS는 파일에 대한 "참조"를 저장소에 저장하여 대용량 파일을 처리하지만, 실제 파일 자체는 저장하지 않는다.

Git의 아키텍처를 해결하기 위해 Git LFS는 실제 파일(다른 곳에 저장됨)에 대한 참조 역할을 하는 포인터 파일을 만든다.

GitHub는 나의 저장소에서 이 포인터 파일을 관리한다. 저장소를 clone할 때, GitHub는 포인터 파일을 지도로 사용하여 가서 큰 파일을 찾아온다.

Git LFS 포인터는 이렇게 생겼다.

version https://git-lfs.github.com/spec/v1
oid sha256:4cac19622fc3ada9c0fdeadb33f88f367b541f38b89102a3f1261ac81fd5bcb5
size 84977953

사용 중인 Git LFS version을 추적한 다음 파일의 고유 식별자(oid)를 추적한다. 최종 파일의 크기도 저장한다.

 

LFS 설치하기

 

나는 홈브류를 통해 설치했다.

brew install git-lfs
git lfs install

더 자세히는 여기에.

https://git-lfs.github.com