Skip to main content

GitHub의 대용량 파일 정보

GitHub Enterprise Server은(는) 일반 Git 리포지토리에서 추적할 수 있는 파일의 크기를 제한합니다. 제한을 초과하는 파일을 추적하거나 제거하는 방법을 알아봅니다.

Platform navigation

GitHub Enterprise Server의 크기 제한 정보

GitHub Enterprise Server은(는) 파일 리포지토리 크기조정에 대한 크기 조정 및 권장 사항의 하드 제한이 있지만 모든 Git 리포지토리에 풍부한 스토리지를 제공하려고 합니다.

파일 크기 제한

GitHub Enterprise Server은(는) 리포지토리에 허용되는 파일의 크기를 제한합니다. 50MiB보다 큰 파일을 추가하거나 업데이트하려고 하면 Git에서 경고가 표시됩니다. 변경 내용은 여전히 리포지토리에 성공적으로 푸시되지만 성능 영향을 최소화하기 위해 커밋을 제거하는 것이 좋습니다. 자세한 내용은 리포지토리의 기록에서 파일 제거를 참조하세요.

Note

브라우저를 통해 리포지토리에 파일을 추가하는 경우 파일은 25MiB보다 클 수 없습니다. 자세한 내용은 리포지토리에 파일 추가을(를) 참조하세요.

기본적으로 GitHub Enterprise Server은(는) 100MiB보다 큰 파일을 차단합니다. 그러나 사이트 관리자는 GitHub Enterprise Server 인스턴스에 대해 다른 제한을 구성할 수 있습니다. 자세한 내용은 엔터프라이즈에서 리포지토리 관리 정책 적용을(를) 참조하세요.

이 제한을 초과하는 파일을 추적하려면 Git 대용량 파일 스토리지(Git LFS)을(를) 사용해야 합니다. 자세한 내용은 Git Large File Storage 정보을(를) 참조하세요.

리포지토리 내에 큰 파일을 배포해야 하는 경우 파일을 추적하는 대신 GitHub Enterprise Server 인스턴스에 릴리스를 만들 수 있습니다. 자세한 내용은 큰 이진 파일 배포를 참조하세요.

Git은 대용량 SQL 파일을 처리하도록 설계되지 않았습니다. 대규모 데이터베이스를 다른 개발자와 공유하려면 파일 공유 서비스를 사용하는 것이 좋습니다.

리포지토리 크기 권장 사항

리포지토리는 작게 유지되고 이상적으로는 1GB 미만이며 5GB 미만을 사용하는 것이 좋습니다. 리포지토리가 작을수록 복제 속도가 빨라지고 작업 및 유지 관리가 더 쉬워집니다.

리포지토리의 크기와 전반적인 상태를 효과적으로 관리하여 리포지토리가 인프라에 영향을 주지 않도록 방지할 수 있습니다. github/git-sizer 리포지토리에서 리포지토리 분석을 위한 조언과 도구를 찾을 수 있습니다.

리포지토리의 기록에서 파일 제거

Warning

이 절차는 컴퓨터의 리포지토리와 GitHub Enterprise Server 인스턴스에서 파일을 영구적으로 제거합니다. 파일이 중요한 경우 리포지토리 외부의 디렉터리에 로컬 백업 복사본을 만듭니다.

가장 최근에 푸시되지 않은 커밋에 추가된 파일 제거

파일이 가장 최근 커밋과 함께 추가되었으며 GitHub Enterprise Server 인스턴스에 푸시하지 않은 경우 파일을 삭제하고 커밋을 수정할 수 있습니다.

  1. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  2. 현재 작업 디렉터리를 로컬 리포지토리로 변경합니다.

  3. 파일을 제거하려면 git rm --cached를 입력합니다.

    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
    
  4. --amend -CHEAD를 사용하여 이 변경 내용을 커밋합니다.

    $ git commit --amend -CHEAD
    # Amend the previous commit with your change
    # Simply making a new commit won't work, as you need
    # to remove the file from the unpushed history as well
    
  5. GitHub Enterprise Server 인스턴스에 커밋을 푸시합니다.

    $ git push
    # Push our rewritten, smaller commit
    

이전 커밋에서 추가된 파일 제거

이전 커밋에서 파일을 추가한 경우 리포지토리의 기록에서 파일을 제거해야 합니다. 리포지토리의 기록에서 파일을 제거하려면 git filter-repo 명령을 사용하는 것이 좋습니다. 자세한 내용은 Removing sensitive data from a repository(리포지토리에서 중요한 데이터 제거)을(를) 참조하세요.

또는 추가 도구를 설치하지 않으려는 경우 대화형 다시 지정을 사용하여 문제가 있는 커밋을 제거할 수 있습니다. 방법:

  • 해당 파일을 추가하거나 수정한 커밋을 알아야 합니다.
  • 커밋은 하나의 분기에만 있어야 합니다.
  • 커밋이 적용된 이후 커밋이 속한 한 분기에는 병합이 없어야 합니다.

대화형 다시 지정에 대한 자세한 내용은 명령줄에서 Git 다시 지정 사용을(를) 참조하세요. 대화형 다시 지정을 사용하여 수정하는 데 필요한 조건을 충족하는지 확실하지 않은 경우 git filter-repo를 사용해야 합니다.

큰 이진 파일 배포

리포지토리 내에 큰 파일을 배포해야 하는 경우 GitHub Enterprise Server 인스턴스에 릴리스를 만들 수 있습니다. 릴리스를 사용하면 다른 사용자가 사용할 수 있도록 소프트웨어, 릴리스 정보, 이진 파일에 대한 링크를 패키지할 수 있습니다. 자세한 정보는 릴리스 정보을(를) 참조하세요.