Git ошибка, необходимо удалить большой файл
Я получаю эту ошибку, когда пытаюсь нажать на git, и я не знаю, как ее исправить.
Counting objects: 1239, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1062/1062), done.
Writing objects: 100% (1239/1239), 26.49 MiB | 679.00 KiB/s, done.
Total 1239 (delta 128), reused 0 (delta 0)
remote: warning: File log/development.log is 98.59 MB; this is larger than GitHub recommended maximum file size of 50.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: efd2d13efa4a231e3216dad097ec25d6
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File log/development.log is 108.86 MB; this exceeds GitHub file size limit of 100.00 MB
remote: error: File log/development.log is 108.74 MB; this exceeds GitHub file size limit of 100.00 MB
remote: error: File log/development.log is 108.56 MB; this exceeds GitHub file size limit of 100.00 MB
remote: error: File log/development.log is 106.58 MB; this exceeds GitHub file size limit of 100.00 MB
remote: error: File log/development.log is 103.70 MB; this exceeds GitHub file size limit of 100.00 MB
To [email protected]:myUsername/myRepo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:myUsername/myRepo.git'
Я предполагаю, что мне нужно удалить большой файл из фиксации, но как это сделать?
Ответы
Ответ 1
Чтобы удалить большие файлы, GitHub предлагает:
$ 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
Или если вам нужна более общая информация о том, как работать с большими файлами на GitHub.
И в следующий раз добавьте /log
в свой .gitignore
Ответ 2
Я недавно столкнулся с той же проблемой, вы можете просто отфильтровать ветку для конкретного файла и удалить ее -
git filter-branch --tree-filter 'rm -rf path/to/your/file' HEAD
Ответ 3
Чтобы улучшить один из ответов выше, вам нужно
git filter-branch -f --tree-filter 'rm -f /path/to/file' HEAD --all
чтобы удалить ваш файл даже из истории. Вам нужно -f
чтобы принудительно переписать любую резервную копию, и --all
чтобы удалить файл из всех ветвей. Больше информации здесь: Git Docs
Ошибка большого файла не исчезнет, удалив ее из кэша git, потому что она все еще скрывается в истории коммитов.
Ответ 4
Вы можете вернуть git добавить перед фиксацией.
Проверьте этот вопрос: Как отменить 'git добавить' перед фиксацией?
Он должен работать. И не отправляйте большие файлы на git, это не достойно;)
Кроме того, исключите свои журналы, добавив git ignore в свой путь к журналам.
Ответ 5
@Daniel
Вы можете игнорировать этот файл журнала из git repo с помощью файла .gitignore
.
для этого вам нужно добавить строку ниже в файл .gitignore
/log
и попытайтесь снова зафиксировать.
Надеемся, что эта информация поможет вам исправить вашу проблему.
Ответ 6
git reset --soft HEAD~1
затем исключите файл из коммита.
Примечание. Используйте HEAD ~ N, чтобы вернуться к N числу предыдущих коммитов.
используйте его, вернитесь к коммиту, удалите большой файл из коммита, если вы его видите, затем повторите коммит и нажмите.
Это должно решить проблему
Ответ 7
Добавление к предыдущим ответам:
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch path_to_the_file/your_big_file
Кроме того, когда я пытался вытащить, я получил "Отказ от слияния несвязанных историй".
Решение было использовать: git pull origin branch_name --allow-unrelated-histories
.
Затем решите возможные конфликты и отправьте это время без файла big_file.