Как загрузить файл на github больше 25 мб
Перейти к содержимому

Как загрузить файл на github больше 25 мб

  • автор:

Как на GitHub в проект залить папку с файлами больше 25 мб?

Как на GitHub в проект (не уверен, что это так называется, может быть repository) залить папку с файлами больше 25 мб?

  • Вопрос задан более года назад
  • 241 просмотр

2 комментария

Простой 2 комментария

gbg

Сначала надо понять, а нужно ли туда такое заливать — вдруг это не исходники проекта, а артефакты, которых в репе и быть не должно

А решение назвается Git LFS

sergey-kuznetsov

Сергей Кузнецов @sergey-kuznetsov Куратор тега GitHub

Файлы больше 25 МБ или вся папка больше 25 МБ?
И уточните, что вы подразумеваете под фразой «залить папку».

Как сделать push большого файла более 100 мб

Нужно залить комит на репозиторий а у меня googlemaps.framework весит 119 мб и он не хочет его заливать. Есть какие то быстрые решения проблемы?

Отслеживать
задан 23 дек 2015 в 15:57
Алексей Заякин Алексей Заякин
31 1 1 серебряный знак 3 3 бронзовых знака
Вы используете CocoaPods, как здесь?
– user181100
23 дек 2015 в 16:01

я для ios не пишу, мне просто интересно — а зачем заливать сторонний фреймворк? А если еще и базу с веб-сервером и прочими приблудами целиком залить? Почему бы только свой код не хранить? Например, как здесь (тот же ios + googlemaps)

23 дек 2015 в 16:03
Ёкрн бабай. Не лазивайте бинарники в git, не надо так.
23 дек 2015 в 16:10

Возможно человек прочитал официальную документацию CocoaPods — в ней они прямо таки рекомендуют пихать всю папку Pods в репозиторий, вопреки здравому смыслу 🙂

23 дек 2015 в 16:17

@SergeyRufanov YIKES! Мне казалось, Ruby-community уже набрало граблей с Bundler’ом, чтобы так не делать, а CocoaPods не просто занимается тем же, а написан на том же языке! Обалдеть. Адъ какой-то.

– user181100
23 дек 2015 в 16:26

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Да. Не заливать его вообще и убрать из коммитов.

Не потому, что это вызывает такие проблемы (хотя и это тоже), а потому, что он не является частью вашего проекта, он является зависимостью, которую можно загрузить из специальных мест уже после клонирования репозитория вашего проекта.

По-хорошему, такими вещами занимается CocoaPods, менеджер зависимостей. Его идея проста — вы храните в корне репозитория файлик (с названием Podfile ), в котором несложным DSL описано, от каких библиотек ваш проект зависит. Только непосредственно зависит, зависимости зависимостей он разберёт самостоятельно.

Любой, кто склонировал репозиторий, перед началом работы делает pod install в папке с проектом, тем самым загружая и устанавливая в нужные места нужные библиотеки.

Дополнение:

Официальная документация предлагает заливать эти библиотеки в репозиторий. С этим можно жить, пока:

  • библиотеки небольшие
  • используется собственный сервер контроля версий (где нет боязни наткнуться на плотные ограничения сервиса)

У вас оба пункта не выполняются: вы используете Github и библиотеки у вас крупные. А остальные плюсы держания библиотек в репозитории в документации немножко бессмысленные:

  • There is no need to run pod install , and no Internet connection is necessary.
    • Один запуск pod install и можно уходить в глубокий оффлайн, пока вам не потребуются новые версии библиотек. Но откуда вы их загрузите без интернета?
    • Если опасаетесь, что автор уберёт библиотеку, форкните. Если опасаетесь, что гитхаб ляжет, держите форк на локальной машине и прочитайте вот это.
    • Этим уже занимается Podfile.lock .

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

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

    Platform navigation

    About size limits on GitHub

    GitHub tries to provide abundant storage for all Git repositories, although there are hard limits for file and repository sizes. To ensure performance and reliability for our users, we actively monitor signals of overall repository health. Repository health is a function of various interacting factors, including size, commit frequency, contents, and structure.

    File size limits

    GitHub limits the size of files allowed in repositories. If you attempt to add or update a file that is larger than 50 MiB, you will receive a warning from Git. The changes will still successfully push to your repository, but you can consider removing the commit to minimize performance impact. For more information, see «Removing files from a repository’s history.»

    Note: If you add a file to a repository via a browser, the file can be no larger than 25 MiB. For more information, see «Adding a file to a repository.»

    GitHub blocks files larger than 100 MiB.

    To track files beyond this limit, you must use Git Large File Storage (Git LFS). For more information, see «About Git Large File Storage.»

    If you need to distribute large files within your repository, you can create releases on GitHub.com instead of tracking the files. For more information, see «Distributing large binaries.»

    Git is not designed to handle large SQL files. To share large databases with other developers, we recommend using a file sharing service.

    Repository size limits

    We recommend repositories remain small, ideally less than 1 GB, and less than 5 GB is strongly recommended. Smaller repositories are faster to clone and easier to work with and maintain. If your repository excessively impacts our infrastructure, you might receive an email from GitHub Support asking you to take corrective action. We try to be flexible, especially with large projects that have many collaborators, and will work with you to find a resolution whenever possible. You can prevent your repository from impacting our infrastructure by effectively managing your repository’s size and overall health. You can find advice and a tool for repository analysis in the github/git-sizer repository.

    External dependencies can cause Git repositories to become very large. To avoid filling a repository with external dependencies, we recommend you use a package manager. Popular package managers for common languages include Bundler, Node’s Package Manager, and Maven. These package managers support using Git repositories directly, so you don’t need pre-packaged sources.

    Git is not designed to serve as a backup tool. However, there are many solutions specifically designed for performing backups, such as Arq, Carbonite, and CrashPlan.

    Removing files from a repository’s history

    Warning: These procedures will permanently remove files from the repository on your computer and GitHub.com. If the file is important, make a local backup copy in a directory outside of the repository.

    Removing a file added in the most recent unpushed commit

    If the file was added with your most recent commit, and you have not pushed to GitHub.com, you can delete the file and amend the commit:

    1. Open Terminal Terminal Git Bash .
    2. Change the current working directory to your local repository.
    3. To remove the file, enter git rm —cached :

    $ git rm --cached GIANT_FILE # Stage our giant file for removal, but leave it on disk 
    $ 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 
    $ git push # Push our rewritten, smaller commit 

    Removing a file that was added in an earlier commit

    If you added a file in an earlier commit, you need to remove it from the repository’s history. To remove files from the repository’s history, you can use the BFG Repo-Cleaner or the git filter-repo command. For more information see «Removing sensitive data from a repository.»

    Distributing large binaries

    If you need to distribute large files within your repository, you can create releases on GitHub.com. Releases allow you to package software, release notes, and links to binary files, for other people to use. For more information, visit «About releases.»

    We don’t limit the total size of the binary files in the release or the bandwidth used to deliver them. However, each individual file must be smaller than 2 GiB.

    Управление большими файлами

    Вы можете управлять большими файлами с помощью хранилища больших файлов Git.

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

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

    Сведения о хранилище больших файлов Git Large File Storage

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

    Установка хранилища больших файлов Git

    Чтобы использовать Git LFS, необходимо загрузить и установить новую программу отдельно от Git.

    Настройка Git Large File Storage

    После установки Git LFS необходимо связать его с большим файлом в репозитории.

    Сведения об использовании хранилища и пропускной способности

    Каждой учетной записи, работающей с Хранилище больших файлов Git, бесплатно предоставляется 1 ГиБ хранилища и 1 ГиБ пропускной способности в месяц. Если квоты пропускной способности и хранилища недостаточно, можно приобрести дополнительную квоту для Git LFS.

    Совместная работа с помощью Git Large File Storage

    Включив Git LFS, вы сможете получать, изменять и отправлять большие файлы так же, как и файлы, которыми управляет Git. Однако пользователи без Git LFS используют другой рабочий процесс.

    Перемещение файла в репозитории в Git Large File Storage

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

    Удаление файлов из хранилища больших файлов Git

    Если вы настроили Git LFS для репозитория, можно удалить все файлы или подмножество файлов из Git LFS.

    Устранение ошибок отправки в хранилище больших файлов GIT

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *