Git Large File Storage (LFS)
Git Large File Storage(LFS)를 사용하여 대용량 바이너리 파일을 Git 리포지터리 외부에 저장하고 관리하는 방법을 설명합니다.
Git Large File Storage(LFS)는 Git 리포지터리가 대용량 바이너리 파일을 효율적으로 관리하도록 도와주는 오픈 소스 Git 확장 기능입니다. Git은 텍스트 파일의 변경을 추적하는 방식과 동일하게 바이너리 파일(오디오, 비디오, 이미지 파일 등)의 변경을 추적할 수 없습니다. 텍스트 기반 파일은 플레인텍스트 diff를 생성할 수 있지만, 바이너리 파일을 변경하면 Git이 리포지터리의 파일 전체를 교체해야 합니다. 대용량 파일을 반복적으로 변경하면 리포지터리 크기가 증가합니다. 시간이 지남에 따라 이러한 크기 증가로 인해 clone , fetch , pull 같은 일반적인 Git 작업이 느려질 수 있습니다. Git LFS를 사용하면 대용량 바이너리 파일을 Git 리포지터리 외부에 저장하고, Git이 관리할 작은 텍스트 기반 포인터만 남길 수 있습니다. Git LFS를 사용하여 파일을 리포지터리에 추가하면, GitLab이 다음 작업을 수행합니다: Git 리포지터리 대신 프로젝트에 구성된 오브젝트 스토리지에 파일을 추가합니다. 대용량 파일 대신 Git 리포지터리에 포인터를 추가합니다. 포인터에는 다음과 같이 파일에 대한 정보가 포함됩니다: version https://git-lfs.github.com/spec/v1 oid sha256:lpca0iva5kpz9wva5rgsqsicxrxrkbjr0bh4sy6rz08g2c4tyc441rto5j5bctit size 804 Version - 사용 중인 Git LFS 사양의 버전 OID - 사용된 해싱 방법과 {hash-method}:{hash} 형식의 고유 오브젝트 ID. Size - 파일 크기(바이트). 스토리지 크기 및 LFS 오브젝트 스토리지를 포함한 프로젝트 통계를 재계산하는 job을 대기열에 추가합니다. LFS 오브젝트 스토리지는 리포지터리와 연결된 모든 LFS 오브젝트 크기의 합계입니다. Git LFS로 관리되는 파일은 파일명 옆에 LFS 배지가 표시됩니다: [ ](/19.1/topics/git/lfs/img/lfs_badge_v16_0.png) Git LFS 클라이언트는 HTTP Basic 인증을 사용하며 HTTPS를 통해 서버와 통신합니다. 요청을 인증하면 Git LFS 클라이언트는 대용량 파일을 fetch(또는 push)할 위치에 대한 지침을 받습니다. Git 리포지터리를 더 작게 유지하면 리포지터리 크기 제한을 준수하는 데 도움이 됩니다. 자세한 내용은 GitLab Self-Managed의 리포지터리 크기 제한 및 GitLab.com의 리포지터리 크기 제한 을 참조하세요. Git LFS가 포크와 함께 작동하는 방식 이해 # 리포지터리를 포크하면, 포크 시점에 존재했던 업스트림 리포지터리의 기존 LFS 오브젝트가 포크에 포함됩니다. 포크에 새 LFS 오브젝트를 추가하면, 해당 오브젝트는 포크에만 속하며 업스트림 리포지터리에는 속하지 않습니다. 전체 오브젝트 스토리지는 포크에서만 증가합니다. 포크에서 업스트림 프로젝트로 머지 리퀘스트를 생성하고, 해당 머지 리퀘스트에