Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Сведения о больших файлах на GitHub

GitHub ограничивает размер файлов, которые можно отслеживать в обычных репозиториях Git. Узнайте, как отслеживать или удалять файлы, выходящие за пределы лимита.

Сведения об ограничениях размера на GitHub

GitHub пытается обеспечить достаточное хранилище для всех репозиториев Git, хотя существуют жесткие ограничения для размеров файлов и размеров репозиториев. Чтобы обеспечить производительность и надежность для наших пользователей, мы активно отслеживаем сигналы общей работоспособности репозитория. Работоспособность репозитория — это функция различных взаимодействующих факторов, включая размер, частоту фиксаций, содержимое и структуру.

Ограничения размера файла

На GitHub допустимый размер файлов в репозиториях ограничен. При попытке добавить файл размером более 50 MБ или увеличить существующий файл сверх этого размера GIT выдаст предупреждение. Изменения будут успешно отправлены в репозиторий, но, возможно, будет лучше удалить фиксацию, чтобы свести к минимуму влияние на производительность. Дополнительные сведения см. в разделе Удаление файлов из журнала репозитория.

Примечание. Размер файла, добавляемого в репозиторий через браузер, не может превышать 25 МБ. Дополнительные сведения см. в разделе Добавление файла в репозиторий.

GitHub блокирует файлы размером более 100 МБ.

Для отслеживания файлов размером более этого предела необходимо использовать Хранилище больших файлов Git (Git LFS). Дополнительные сведения см. в разделе Сведения о хранилище больших файлов Git Large File Storage.

Если вам нужно распространять большие файлы в репозитории, можно создавать выпуски на GitHub.com вместо отслеживания файлов. Дополнительные сведения см. в разделе Распространение больших двоичных файлов.

В GIT не предусмотрена обработка больших файлов SQL. Для совместной работы с большими базами данных с другими разработчиками рекомендуется использовать Dropbox.

Ограничения на размер репозиториев

Рекомендуется, чтобы репозитории оставались небольшими, в идеале менее 1 ГБ, и крайне нежелательно, чтобы их размер превышал 5 ГБ. Небольшие репозитории быстрее клонируются и проще работать и обслуживать. Если ваш репозиторий чрезмерно влияет на нашу инфраструктуру, вы можете получить сообщение электронной почты от Поддержка GitHub с просьбой принять корректирующие меры. Мы стараемся находить гибкий подход, особенно в случае с крупными проектами со множеством участников совместной работы. По возможности мы попробуем вместе с вами найти решение. Вы можете предотвратить воздействие репозитория на нашу инфраструктуру, эффективно управляя его размером и общей работоспособностью. Советы и средство для анализа репозиториев можно найти в репозитории github/git-sizer.

Из-за внешних зависимостей репозитории GIT могут стать очень большими. Чтобы избежать заполнения репозитория внешними зависимостями, рекомендуется использовать диспетчер пакетов. К популярным диспетчерам пакетов для распространенных языков относятся Bundler, диспетчер пакетов Node и Maven. Эти диспетчеры пакетов поддерживают работу с репозиториями GIT напрямую, поэтому предварительно упакованные источники не нужны.

GIT не предназначен для использования в качестве средства резервного копирования. Однако существует множество решений, специально предназначенных для создания резервных копий, такие как Arq, Carbonite и CrashPlan.

Удаление файлов из журнала репозитория

Предупреждение. Эти процедуры окончательно удаляют файлы из репозитория на компьютере и GitHub.com. Если файл важен, создайте его локальную резервную копию в каталоге за пределами репозитория.

Удаление файла, добавленного в рамках последней неотправленной фиксации

Если файл был добавлен с последней фиксацией и вы не отправлены в GitHub.com, вы можете удалить файл и изменить фиксацию:

  1. Откройте ТерминалТерминалGIT Bash. 1. Измените текущий рабочий репозиторий на локальный проект.
  2. Чтобы удалить файл, введите команду git rm --cached:
    $ git rm --cached GIANT_FILE
    # Stage our giant file for removal, but leave it on disk
  3. Зафиксируйте это изменение с помощью параметров --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
  4. Отправка фиксаций в GitHub.com:
    $ git push
    # Push our rewritten, smaller commit

Удаление файла, добавленного в рамках более ранней фиксации

Если вы добавили файл в рамках предыдущей фиксации, его необходимо удалить из журнала репозитория. Чтобы удалить файлы из журнала репозитория, можно использовать BFG Repo-Cleaner или команду git filter-repo. Дополнительные сведения см. в разделе Удаление конфиденциальных данных из репозитория.

Распространение больших двоичных файлов

Если вам нужно распространять большие файлы в репозитории, можно создать выпуски на GitHub.com. Выпуски позволяют упаковывать программное обеспечение, заметки о выпуске и ссылки на двоичные файлы для использования другими людьми. Дополнительные сведения см. на сайте Сведения о выпусках.

Мы не ограничиваем общий размер двоичных файлов в выпуске или пропускную способность для их доставки. Однако каждый отдельный файл должен быть меньше 2 ГБ.