Как игнорировать большие файлы при отправке на GitHub?

Вопрос или проблема

Я новичок в git и пытался загрузить свою проектную папку на github.

Ниже шаги, которые я выполнил.

git init

git add .

git commit -m 'первый коммит'

git push <адрес моего репозитория>

Затем возникает следующая ошибка.

Подсчет объектов: 95, готово.
Сжатие дельт с использованием до 32 потоков.
Сжатие объектов: 100% (73/73), готово.
Запись объектов: 100% (77/77), 920.61 MiB | 27.90 MiB/s, готово.
Всего 77 (дельта 37), повторно использовано 1 (дельта 0)
удаленный: Разрешение дельт: 100% (37/37), завершено с 10 локальными объектами.
удаленный: предупреждение: Файл images/log размером 60.77 МБ; это превышает рекомендуемый максимальный размер файла GitHub в 50.00 МБ
удаленный: ошибка: GH001: Обнаружены большие файлы. Возможно, вы захотите попробовать Git Large File Storage - https://git-lfs.github.com.
удаленный: ошибка: Трассировка: c3704dac955cd6d24c55bfab021fbe2a
удаленный: ошибка: Смотрите http://git.io/iEPt8g для получения дополнительной информации.
удаленный: ошибка: Файл images/sql-push-image1.iso размером 349.21 МБ; это превышает лимит размера файла GitHub в 100.00 МБ
удаленный: ошибка: Файл images/sql-push-image1.SPA.bin размером 570.62 МБ; это превышает лимит размера файла GitHub в 100.00 МБ
удаленный: ошибка: Файл images/sql-push-image2.SPA.bin размером 348.69 МБ; это превышает лимит размера файла GitHub в 100.00 МБ
удаленный: ошибка: Файл images/sql-push-image1.ova размером 349.49 МБ; это превышает лимит размера файла GitHub в 100.00 МБ
К https://github.com/mohandev/sql-qa.git
 ! [удаленный отклонен] master -> master (хуков pre-receive отклонен)
ошибка: не удалось загрузить некоторые ссылки в 'https://github.com/mohandev/sql-qa.git'

Множество людей ссылались на создание файла .gitignore, чтобы игнорировать файлы. Поэтому я создал файл .gitignore со следующим содержимым

*.iso
*.bin
*.ova

Затем я выполнил следующие команды

git add .

git commit -m 'игнорирование некоторых файлы изображений'

git push

Но снова возникла та же ошибка.

Как исправить эту проблему?

Если вы напишете .gitignore, который просто содержит :

*.iso
*.bin
*.ova

то git просто игнорирует файлы *.iso, *.bin и *.ova в вашей корневой директории, но не в вашей директории images/.

Вы можете попробовать :

images/*.iso
images/*.bin
images/*.ova

Вот возможное решение:

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch images/*.bin images/*.ova images/*.iso'

как описано здесь

Ответ или решение

Если вы столкнулись с ошибкой при попытке сделать push на GitHub из-за того, что некоторые файлы превышают максимальный размер (например, 50 МБ или 100 МБ), необходимо предпринять несколько шагов, чтобы игнорировать большие файлы и успешно загрузить ваш проект.

Пошаговое решение проблемы

  1. Создание или изменение .gitignore файла:
    Начнем с того, что .gitignore позволяет Git игнорировать указанные файлы и каталоги. Так как вы хотите игнорировать файлы из определенной директории, убедитесь, что вы корректно указали пути в .gitignore.

    В вашем случае, чтобы игнорировать файлы .iso, .bin и .ova в каталоге images/, ваш .gitignore файл должен выглядеть следующим образом:

    images/*.iso
    images/*.bin
    images/*.ova
  2. Удаление уже отслеживаемых файлов:
    Если файлы уже были добавлены и закоммичены до создания или изменения .gitignore, Git по-прежнему будет отслеживать их. Чтобы устранить это, необходимо удалить их из индекса (но оставить в файловой системе) с помощью следующей команды:

    git rm --cached images/*.iso images/*.bin images/*.ova

    Если есть много файлов, вы также можете использовать фильтр:

    git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch images/*.bin images/*.ova images/*.iso'
  3. Добавление и коммит изменений:
    После удаления файлов из индекса следует добавить .gitignore и закоммитить изменения:

    git add .gitignore
    git commit -m "Добавлен .gitignore для игнорирования больших файлов"
  4. Попытка повторного push:
    После того, как вы добавили и закоммитили изменения, попробуйте снова выполнить push:

    git push <ваш репозиторий>

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

  • Git Large File Storage (LFS): Если вам необходимо хранить большие файлы в репозитории, рассмотрите возможность использования Git LFS. Это система для отслеживания больших файлов в Git. Для ее установки и инициализации следуйте инструкциям на официальном сайте Git LFS.

  • Проверка размера файлов: Перед добавлением файлов в репозиторий полезно проверить их размеры, чтобы избежать проблем с превышением лимитов.

Заключение

Следуя данным шагам, вы сможете успешно игнорировать большие файлы и избежать возникновения ошибок при выполнении команды push на GitHub. Убедитесь, что вы внимательно обращаетесь с настройками .gitignore и следите за размером файлов в вашем проекте. Это поможет вам более эффективно управлять вашим репозиторием и избежать потенциальных проблем в будущем.

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

Капча загружается...