저장소 크기
저장소 크기 계산, 제한, Git 저장소 스토리지를 줄이는 방법을 이해합니다.
Git 리포지터리의 크기는 성능과 스토리지 비용에 큰 영향을 줍니다. 압축, 하우스키핑을 비롯한 여러 요인 때문에 인스턴스마다 크기가 조금씩 다를 수 있습니다. 크기 계산 # 리포지터리 크기는 리포지터리에 있는 모든 파일 크기의 합계입니다. 이 계산은 리포지터리의 해시 스토리지 경로 에서 du --summarize --bytes 를 실행하는 것과 비슷합니다. 크기는 리포지터리가 변경될 때 다시 계산되며, 15분에 한 번을 넘지 않습니다. 리포지터리 크기는 프로젝트 크기의 일부입니다. 프로젝트 개요 페이지의 Project information 아래에 표시되는 프로젝트 크기에는 리포지터리와 함께 LFS 객체, job 아티팩트, 패키지, 위키가 포함됩니다. 리포지터리 크기 확인 # 사전 요구 사항: 프로젝트에 대한 Maintainer 또는 Owner 권한, 또는 네임스페이스에 대한 Owner 권한이 필요합니다. 리포지터리 크기를 확인하려면 다음과 같이 합니다: 상단 바에서 Search or go to 를 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 Settings > Usage quotas 를 선택합니다. Storage 탭을 선택합니다. 사용량 내역에서 Repository 행의 값을 확인합니다. 프로젝트가 사용하는 스토리지에 대한 자세한 내용은 스토리지 를 참고합니다. 크기 및 스토리지 제한 # 관리자는 GitLab Self-Managed에 리포지터리 크기 제한 을 설정할 수 있습니다. GitLab.com의 크기 제한은 사전에 정의되어 있습니다. 프로젝트가 크기 제한에 도달하면 푸시, 머지 리퀘스트 생성, LFS 객체 업로드 같은 일부 작업이 제한됩니다. Git 히스토리 재작성 전 확인 사항 # Git 히스토리를 재작성하고 리포지터리에서 데이터를 제거하기 전에 다음 절의 내용을 반드시 고려해야 합니다. 로컬 클론 변경 필요 # 리포지터리를 클론한 모든 사용자는 다음 중 하나를 수행해야 합니다: 로컬 사본을 삭제하고 리포지터리를 새로 클론합니다. 원격 변경 사항을 모두 페치하고 진행 중인 작업을 그 위에 리베이스합니다. 이 작업을 제대로 하지 않으면 로컬 변경 사항을 푸시하는 사용자가 삭제하려던 파일을 되살릴 수 있습니다. 실행 중인 파이프라인으로 인한 정리 실패 # 정리 중에 파이프라인이 여전히 실행되고 있으면 파이프라인이 리포지터리와 상호작용하여 정리가 제대로 되지 않을 수 있습니다. 가비지 컬렉션 유예 기간 # GitLab은 30분의 유예 기간을 두고 Git 가비지 컬렉션을 실행합니다. 이 과정은 다음 두 조건을 모두 만족하는 객체를 정리합니다: 어떤 참조에서도 도달할 수 없습니다. 생성된 지 30분 이상 지났습니다. 제거하려는 데이터가 어떤 커밋에서든 도달할 수 있거나 생성된 지 30분이 지나지 않았다면 Git 가비지 컬렉션은 그 데이터를 제거하지 않습니다. 따라서 하우스키핑을 실행한 뒤 Prune unreachable objects 를 선택하기까지 최소 30분을 기다려야 합니다. 포크된 프로젝트에서는 히스토리를 재작성할 수 없음 #