Git LFS란?
Git은 대용량 바이너리 파일을 잘 처리하도록 설계되지 않았습니다. 오디오, 비디오 또는 데이터셋과 같은 대용량 파일을 커밋하면 저장소 크기가 빠르게 증가합니다. 이로 인해 모든 사람이 복제 및 가져오기 속도가 느려집니다.
Git LFS(Large File Storage)는 이 문제를 해결하는 Git 확장 기능입니다. Git 저장소의 대용량 파일을 작은 텍스트 포인터로 대체하고 실제 파일 내용은 별도의 원격 서버에 저장합니다.
문제 상황
프로젝트에 200MB 비디오 파일을 추가해야 합니다. 커밋을 푸시하려고 하면 파일 크기 제한에 대한 Git 호스트(예: GitHub)의 경고나 오류가 표시될 수 있습니다. 성공하더라도 푸시가 매우 느리고 저장소를 복제하는 모든 사람이 이 대용량 파일을 다운로드해야 합니다.
해결 방법
1. Git LFS 설치하기
먼저 로컬 컴퓨터에 Git LFS 클라이언트를 설치해야 합니다.
- macOS: Homebrew 사용:
brew install git-lfs
- Windows: Chocolatey 사용:
choco install git-lfs
또는 공식 웹사이트에서 다운로드합니다. - Linux: 패키지 관리자 사용, 예: Debian/Ubuntu에서
sudo apt-get install git-lfs
.
설치 후 사용자 계정당 한 번 이 명령을 실행합니다.
git lfs install
2. LFS로 파일 유형 추적하기
저장소에서 Git LFS에게 어떤 파일을 추적할지 알려줘야 합니다. 이는 git lfs track
명령을 사용하여 수행됩니다. 개별 파일 이름보다는 패턴을 사용하는 것이 가장 좋습니다.
모든 .mp4
비디오 파일을 추적하고 싶다고 가정해 보겠습니다.
git lfs track "*.mp4"
이 명령은 저장소에 .gitattributes
파일을 생성하거나 업데이트합니다. 이 파일에는 추적 정보가 포함되어 있습니다.
*.mp4 filter=lfs diff=lfs merge=lfs -text
3. .gitattributes
커밋하기
다른 협업자가 동일한 LFS 추적 규칙을 사용하도록 .gitattributes
파일을 저장소에 커밋해야 합니다.
git add .gitattributes
git commit -m "Configure Git LFS for video files"
4. 대용량 파일 추가 및 커밋하기
이제 평소처럼 대용량 파일을 저장소에 추가할 수 있습니다.
git add my-large-video.mp4
git commit -m "Add large video file"
5. 원격 저장소에 푸시하기
푸시하면 Git LFS가 프로세스를 가로챕니다. 대용량 파일을 LFS 서버에 업로드하고 작은 포인터 파일을 Git 저장소에 푸시합니다.
git push origin main
LFS 파일이 업로드되고 있음을 나타내는 출력이 표시됩니다.
다른 사람에게는 어떻게 작동하는가
다른 사용자가 저장소를 복제하면 포인터 파일을 받게 됩니다. 그러면 Git LFS가 LFS 서버에서 실제 대용량 파일을 자동으로 다운로드합니다. Git LFS가 설치되어 있지 않으면 포인터 파일만 갖게 되며 사용하려고 하면 오류가 표시됩니다.
결론
Git LFS는 Git에서 대용량 파일을 처리하는 표준 방법입니다. 코드와 함께 대용량 자산을 버전 관리하면서 저장소를 작고 빠르게 유지합니다. 대용량 파일을 저장소에 추가하기 전에 .gitattributes
에서 추적할 파일 유형을 구성하는 것을 잊지 마세요.
Leave a comment