- 인쇄
- PDF
대용량 파일 업로드(LFS) 사용
- 인쇄
- PDF
Git 리포지토리에 업로드할 수 있는 파일 용량은 최대 500 MB로 제한되지만, Git LFS(Large File System)를 활용하면 Git 리포지토리에서 대용량 파일(파일 당 최대 5 GB)의 버전 관리를 수행할 수 있습니다. Git LFS는 대용량 파일에 대한 메타데이터(metadata)만 리포지토리에 커밋하고 실제 파일 내용은 별도의 원격 저장소에 저장하는 방식으로 작동합니다.
Git LFS 사용을 위한 요구 사항
Git LFS를 이용하려면 Git 클라이언트와 Git LFS를 로컬 PC에 설치해 주십시오.
- GIT 공식 사이트에서 Git 클라이언트 설치 파일을 다운로드해 설치하고 자세한 사용법을 확인해 주십시오.
- GIT LFS 공식 사이트에서 Git LFS 설치 파일을 다운로드해 설치하고 자세한 사용법을 확인해 주십시오.
- Git LFS는 HTTPS 연결만을 지원하며 SSH 연결은 지원하지 않습니다.
- 공통 프로젝트를 위해 Git LFS가 적용된 리포지토리를 공유하는 경우 모든 프로젝트 구성원이 로컬 PC에 Git LFS를 설치하고 Git LFS의 작동 원리와 사용법을 숙지하도록 해 주십시오.
- Git LFS가 설치되지 않은 로컬 PC에서는 LFS 기능을 이용한 대용량 파일 관리 및 파일 잠금을 수행할 수 없습니다.
- Git LFS를 다운로드하고 설치한 후에는 다음과 같이 작업 중인 리포지토리 경로에서 Git LFS를 초기화해 주십시오.
$ git lfs install Git LFS initialized.
대용량 파일 업로드
Git LFS를 이용해 대용량 파일을 업로드하는 방법은 다음과 같습니다.
이 사용 가이드에서는 로컬 리포지토리에서 Git LFS를 초기화한 후 특정 파일에 대해 트래킹을 설정하고 원격 리포지토리로 업로드(push)하는 방법을 간략한 예제로 설명합니다. Git LFS 사용 방법에 대한 자세한 내용은 GIT LFS 공식 사이트를 참고해 주십시오.
:::
- 로컬 PC에서 Git Client를 실행한 후 작업할 리포지토리 경로로 이동해 주십시오.
- Git LFS 초기화를 수행해 주십시오.
$ git lfs install Git LFS initialized.
- 업로드할 대용량 파일에 트래킹을 설정한 후
.gitattributes
파일을 커밋 목록에 추가해 주십시오.- 와일드카드(*)를 이용해 복수 파일을 지정할 수도 있습니다.
.gitattributes
파일에는 파일에 대한 트래킹 내역이 기록됩니다.
$ git lfs track "*.psd" Tracking "*.psd" $ git add .gitattributes
- 업로드할 대용량 파일을 커밋한 후 리모트 리포지토리로 업로드(push)해 주십시오.
$ git add sample.psd $ git commit -m "Added design file" $ git push origin master
- 대용량 파일을 업로드하는 중 시간 초과(i/o timeout) 오류 등이 발생하는 경우 다음과 같이 대기 시간을 연장할 수 있습니다.
$ git config lfs.activitytimeout 300
- 파일 업로드가 완료된 후에는 SourceCommit 리포지토리의 [Code] 탭에서 트래킹이 설정된 대용량 파일이 LFS 형식으로 저장된 것을 확인할 수 있습니다.
파일 잠금
Git LFS의 파일 잠금(lock) 기능을 이용하면 특정 계정을 사용하는 경우에만 잠긴 파일을 수정하거나 업로드할 수 있도록 설정할 수 있습니다.
- 파일 잠금 기능은 Git LFS 2.0 이후 버전에서만 사용할 수 있습니다.
- Git 클라이언트가 파일의 잠금 상태를 올바르게 인식하도록 하려면 사용자의 로컬 PC 리포지토리에서 파일 잠금 기능을 설정해 주십시오.
파일 잠금 기능을 설정하는 방법은 다음과 같습니다.
$ git config lfs.{Git URL}/info/lfs.locksverify true
파일 잠금 기능을 설정한 계정에서만 파일 잠금 기능을 해제할 수 있습니다.
잠금 기능 미설정 시 다른 계정으로 잠긴 파일을 업로드할 때에도 다음 경고 메시지와 함께 업로드가 실행되는 등 파일 잠금 기능이 올바르게 작동하지 않을 수 있습니다.
$ git push origin master Locking support detected on remote "origin". Consider enabling it with: $ git config lfs.{Git URL}/info/lfs.locksverify true Unable to push locked files: test.txt - psr (refs: master) WARNING: The above files would have halted this push.
파일 잠금 사용 예
파일 잠금을 활성화한 후에는 파일 잠금 기능을 설정한 서브 계정에서만 파일을 업로드하거나 파일의 잠금을 해제할 수 있습니다.
'서브 계정 1'에서 잠금 설정
$ git lfs lock "test.txt" Locked test.txt $git lfs locks test.txt {sub_account_name} ID:15
'서브 계정 2'에서 파일 업로드(오류 발생)
$ git add test.txt $ git commit -m "Modify file" $ git push origin master Unable to push locked files: * test.txt - {sub_account_name} (refs: master) ERROR: Cannot update locked files.
파일 잠금 설정 해제 예
'서브 계정 1'에서 잠금 설정 해제(해제 성공)
$ git lfs unlock test.txt Unlocked test.txt
'서브 계정 2'에서 잠금 설정 해제(오류 발생)
$ git lfs unlock test.txt test.txt is locked {Sub Account1}