Вопрос или проблема
Я новичок в 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 МБ), необходимо предпринять несколько шагов, чтобы игнорировать большие файлы и успешно загрузить ваш проект.
Пошаговое решение проблемы
-
Создание или изменение .gitignore файла:
Начнем с того, что.gitignore
позволяет Git игнорировать указанные файлы и каталоги. Так как вы хотите игнорировать файлы из определенной директории, убедитесь, что вы корректно указали пути в.gitignore
.В вашем случае, чтобы игнорировать файлы
.iso
,.bin
и.ova
в каталогеimages/
, ваш.gitignore
файл должен выглядеть следующим образом:images/*.iso images/*.bin images/*.ova
-
Удаление уже отслеживаемых файлов:
Если файлы уже были добавлены и закоммичены до создания или изменения.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'
-
Добавление и коммит изменений:
После удаления файлов из индекса следует добавить.gitignore
и закоммитить изменения:git add .gitignore git commit -m "Добавлен .gitignore для игнорирования больших файлов"
-
Попытка повторного push:
После того, как вы добавили и закоммитили изменения, попробуйте снова выполнить push:git push <ваш репозиторий>
Дополнительные рекомендации
-
Git Large File Storage (LFS): Если вам необходимо хранить большие файлы в репозитории, рассмотрите возможность использования Git LFS. Это система для отслеживания больших файлов в Git. Для ее установки и инициализации следуйте инструкциям на официальном сайте Git LFS.
-
Проверка размера файлов: Перед добавлением файлов в репозиторий полезно проверить их размеры, чтобы избежать проблем с превышением лимитов.
Заключение
Следуя данным шагам, вы сможете успешно игнорировать большие файлы и избежать возникновения ошибок при выполнении команды push на GitHub. Убедитесь, что вы внимательно обращаетесь с настройками .gitignore
и следите за размером файлов в вашем проекте. Это поможет вам более эффективно управлять вашим репозиторием и избежать потенциальных проблем в будущем.