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

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

  • автор:

Добавление файла в репозиторий

Можно отправить и зафиксировать существующий файл в репозиторий GitHub или с помощью командной строки.

Platform navigation

В этой статье

Добавление файла в репозиторий GitHub

Файлы, добавляемые в репозиторий через браузер, не могут превышать 25 МиБ. Вы можете добавлять большие файлы (до 100 МиБ) через командную строку. Дополнительные сведения см. в разделе Добавление файла в репозиторий с помощью командной строки. Чтобы добавить файлы размером больше 100 МиБ, необходимо использовать Хранилище больших файлов Git. Дополнительные сведения см. в разделе Сведения о больших файлах на GitHub.

Одновременно можно отправить несколько файлов в GitHub.

Если в репозитории есть защищенные ветви, вы не можете изменять или отправлять файлы в таких ветвях с помощью GitHub. Вы можете использовать GitHub Desktop, чтобы перенести изменения в новую ветвь и зафиксировать их. Дополнительные сведения см. в разделе «[AUTOTITLE» и «Сведения о защищенных ветвях](/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop)».

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

Наборы правил push-уведомлений находятся в бета-версии и могут быть изменены.

Ваш репозиторий может быть защищен защитой push-уведомлений. При принудительной защите GitHub блокирует отправку файла в репозиторий, если файл содержит поддерживаемый секрет, например маркер. Перед попыткой повторной отправки файла удалите секрет из файла. Дополнительные сведения см. в разделе «[AUTOTITLE» и «Работа с защитой push-уведомлений](/code-security/secret-scanning/pushing-a-branch-blocked-by-push-protection#resolving-a-blocked-commit-in-the-web-ui)».

Защита от отправки файлов в веб-интерфейсе в настоящее время находится в бета-версии и подлежит изменению.

  1. На GitHub.comперейдите на главную страницу репозитория.
  2. Над списком файлов выберите раскрывающееся меню «Добавить файл » и нажмите кнопку «Отправить файлы«. Кроме того, вы можете перетащить файлы в браузер.

Снимок экрана: главная страница репозитория. Над списком файлов, кнопкой с меткой

Снимок экрана: запрос на вытягивание GitHub с переключателем для фиксации непосредственно в главной ветви или создания новой ветви. Выбрана новая ветвь.

Добавление файла в репозиторий с помощью командной строки

Существующий файл можно отправить в репозиторий на GitHub.com с помощью командной строки.

В этой процедуре предполагается, что вы уже сделали следующее:

  • создали репозиторий на GitHub или получили доступ к репозиторию, который принадлежит другому пользователю и в который вы хотите внести свой вклад;
  • клонировали репозиторий на локальном компьютере.

Предупреждение: никогда git add , commit«push или конфиденциальная информация, например пароли или ключи API, в удаленный репозиторий. Если вы уже добавили эту информацию, см. разделУдаление конфиденциальных данных из репозитория».

  1. На компьютере переместите файл, который вы хотите передать в GitHub в локальный каталог, который был создан при клонировании репозитория.
  2. Откройте Терминал Терминал GIT Bash .
  3. Измените текущий рабочий репозиторий на локальный проект.
  4. Подготовьте файл для фиксации в локальном репозитории.
$ git add . # Adds the file to your local repository and stages it for commit. Чтобы отменить подготовку файла, используйте команду "git reset HEAD ВАШ-ФАЙЛ". 
$ git commit -m "Add existing file" # Commits the tracked changes and prepares them to be pushed to a remote repository. Чтобы удалить эту фиксацию и изменить файл, используйте команду "git reset --soft HEAD~1", а затем выполните фиксацию и добавьте файл еще раз. 
$ git push origin YOUR_BRANCH # Pushes the changes in your local repository up to the remote repository you specified as the origin 

Дополнительные материалы

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

Вы можете управлять большими файлами с помощью хранилища больших файлов 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 не были отправлены должным образом, можно выполнить ряд действий, чтобы устранить ошибку отправки.

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

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

Отслеживать
задан 23 дек 2015 в 15:57
Алексей Заякин Алексей Заякин
41 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 в проект залить папку с файлами больше 25 мб?

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

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

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

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

    gbg

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

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

    sergey-kuznetsov

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

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

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

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