코드 저장소에 디자인 파일이나 영상, 머신러닝 모델 같은 큰 파일을 함께 올려본 적이 있다면 한 번쯤 이런 경험을 했을 것이다. clone 한 번 하는 데 한참이 걸리고, GitHub에 push 하려니 “파일이 너무 크다”는 에러가 뜬다. 이런 상황을 해결하기 위해 만들어진 도구가 바로 Git LFS(Large File Storage) 다.
Git이 큰 파일에 약한 이유
Git은 본래 소스 코드 같은 텍스트 파일을 빠르게 관리하기 위해 설계됐다. 모든 변경 이력을 저장소 안에 통째로 보관하는 구조이기 때문에, 큰 바이너리 파일을 한 번이라도 커밋하면 그 파일의 이력이 영원히 저장소에 남는다. 결과적으로 다음과 같은 문제가 발생한다.
- 저장소 용량이 빠르게 비대해진다
- clone, pull, push가 느려진다
- GitHub의 경우 파일당 100MB라는 하드 리밋이 있다
Git LFS의 작동 원리
Git LFS는 큰 파일 자체를 Git 저장소에 넣지 않는다. 대신 포인터 파일이라는 작은 텍스트 파일만 저장소에 두고, 실제 파일은 별도의 LFS 서버에 보관한다.
일반 Git: [저장소] ← 큰 파일 전체가 통째로 들어감
Git LFS: [저장소] ← 포인터 파일 (몇 KB)
[LFS 서버] ← 실제 큰 파일
clone이나 pull을 하면 포인터를 통해 필요한 파일만 LFS 서버에서 가져오는 방식이다. 덕분에 저장소는 가볍게 유지되고, 협업 속도도 빨라진다.
설치하기
Git LFS는 Git의 기본 기능이 아니라 별도로 설치해야 하는 확장이다. 운영체제별로 설치 방법이 다르다.
# macOS (Homebrew)
brew install git-lfs
# Ubuntu / Debian
sudo apt install git-lfs
# Windows
# https://git-lfs.com 에서 인스톨러 다운로드
설치 후에는 사용자 계정에 한 번만 활성화해 주면 된다.
git lfs install
기본 사용법
저장소에서 LFS로 관리할 파일 유형을 지정하고, 평소처럼 커밋하면 끝이다.
# .psd 확장자 파일을 LFS로 추적
git lfs track "*.psd"
# 추적 설정은 .gitattributes 파일에 기록되므로 함께 커밋
git add .gitattributes
# 이후엔 일반 Git 사용과 동일
git add design.psd
git commit -m "add design file"
git push
자주 쓰이는 확인 명령어도 알아두면 좋다.
# 현재 LFS로 추적 중인 파일 목록 보기
git lfs ls-files
# 추적 규칙 확인
git lfs track
# LFS 파일 다시 받기
git lfs pull
올린 파일은 어디서 볼까
GitHub에 올렸다면 저장소 웹페이지에서 일반 파일과 똑같이 클릭해서 볼 수 있다. 이미지나 비디오는 미리보기도 정상적으로 동작한다. 파일 페이지 상단에 “Stored with Git LFS”라는 배지가 표시되는 것이 일반 파일과의 차이점이다.
LFS 사용량은 GitHub 기준 Settings → Billing and plans 하단의 “Git LFS Data” 항목에서 확인할 수 있다. 무료 플랜은 저장 용량과 대역폭에 제한이 있으니 사용량이 많은 프로젝트라면 미리 체크해 두자.
흔히 겪는 함정
가장 자주 발생하는 문제는, 다른 사람이 clone한 저장소에서 LFS 파일이 텍스트 포인터로만 보이는 상황이다. 이건 그 환경에 git-lfs가 설치되지 않았다는 뜻이다.
# 설치 여부 확인
git lfs version
# 설치 후 활성화
git lfs install
# 실제 파일 다운로드
git lfs pull
어떤 프로젝트에 적합한가
Git LFS는 다음과 같은 작업에서 진가를 발휘한다.
- 게임 개발 (에셋, 텍스처, 사운드)
- 디자인 협업 (PSD, AI, Sketch 파일)
- 머신러닝 (학습된 모델 가중치 파일)
- 영상이나 오디오 중심의 프로젝트
반대로 모든 파일을 무작정 LFS에 넣을 필요는 없다. 텍스트 기반 파일은 일반 Git이 훨씬 효율적이므로, 큰 바이너리 파일에만 선별적으로 적용하는 것이 좋다.
마치며
Git LFS는 Git의 약점을 깔끔하게 보완해 주는 도구다. 추가 설치와 약간의 설정만 거치면 큰 파일도 부담 없이 버전 관리할 수 있다. 만약 지금 다루고 있는 저장소가 점점 무거워지고 있다면, 한 번쯤 Git LFS 도입을 검토해 볼 만하다.