저장소 크기
저장소 크기 계산, 제한, Git 저장소 스토리지를 줄이는 방법을 이해합니다.
Git 저장소의 크기는 성능과 스토리지 비용에 상당한 영향을 미칠 수 있습니다. 압축, 하우스키핑, 기타 요인으로 인해 인스턴스마다 약간 다를 수 있습니다. 크기 계산 # 프로젝트 개요 페이지는 저장소 파일, 아티팩트, LFS를 포함한 저장소의 모든 파일 크기를 표시합니다. 이 크기는 15분마다 업데이트됩니다. 저장소 크기는 저장소의 모든 파일의 누적 크기를 계산하여 결정됩니다. 이 계산은 저장소의 해시된 스토리지 경로 에서 du --summarize --bytes 를 실행하는 것과 유사합니다. 크기 및 스토리지 제한 # 관리자는 GitLab Self-Managed에 대한 저장소 크기 제한 을 설정할 수 있습니다. GitLab SaaS의 경우 크기 제한은 사전 정의 되어 있습니다. 프로젝트가 크기 제한에 도달하면 푸시, 머지 리퀘스트 만들기, LFS 객체 업로드와 같은 특정 작업이 제한됩니다. Git 기록 재작성 전 # 저장소에서 Git 기록을 재작성하고 데이터를 제거하기 전에 다음 섹션의 정보를 고려해야 합니다. 로컬 클론을 변경해야 함 # 저장소 클론이 있는 모든 사람은 다음 중 하나를 해야 합니다: 로컬 복사본을 삭제하고 저장소의 새 복사본을 클론합니다. 모든 원격 변경 사항을 페치하고 진행 중인 모든 작업이 그 위에 리베이스되도록 합니다. 올바르게 수행되지 않으면 로컬 변경 사항을 푸시하는 사용자가 삭제하려 했던 파일을 복구할 수 있습니다. 실행 중인 파이프라인이 정리 실패를 일으킬 수 있음 # 정리 중에 여전히 파이프라인이 실행 중이면 저장소와 상호 작용하여 정리가 제대로 작동하지 않을 수 있습니다. 가비지 컬렉션 유예 기간 # GitLab은 30분의 유예 기간으로 Git 가비지 컬렉션을 실행합니다. 이 프로세스는 다음 두 조건을 모두 충족하는 객체를 정리합니다: 어떤 참조에서도 도달할 수 없는 것. 최소 30분 이상 된 것. 제거하려는 데이터가 어떤 커밋에서도 도달 가능하거나 30분 미만인 경우 Git 가비지 컬렉션이 제거하지 않습니다. 결과적으로 하우스키핑을 실행한 후 Prune unreachable objects 를 선택하기 전에 최소 30분을 기다려야 합니다. 포크된 프로젝트에서 기록을 재작성할 수 없음 # 내장 메서드는 포크된 저장소에서 사용할 수 없습니다. 포크 전체에 걸쳐 GitLab 객체가 저장되는 방식으로 인해 Git이 포크 간에 공유되는 객체를 가비지 컬렉션하는 것이 불가능합니다. 해결 방법: 프로젝트 아카이브 # 정리 전에 아카이브 하면 저장소가 읽기 전용이 됩니다. 이를 통해 정리가 진행되는 동안 아무도 변경하지 않을 것이 보장됩니다. 저장소를 아카이브하면 포크 관계도 제거됩니다. 이를 통해 데이터를 정리할 수 있습니다. 그러나 데이터가 포크로 가져왔다면 거기서도 정리가 이루어져야 합니다. 저장소 크기를 줄이는 방법 # 저장소 크기를 줄이기 위해 다음 방법을 사용할 수 있습니다: 기록에서 파일 제거 : Git 기록 전체에서 대용량 파일을 제거합니다. 저장소 정리 : 내부 Git 참조와 참조되지 않은 객체를
