Проблемы с нажатием больших файлов через GIT
В настоящее время, когда я пытаюсь нажать на Git repo, я получаю следующую ошибку.
remote: error: GH001: Large files detected.
remote: error: Trace: 7bbfe5c1099cfe679aa3cd1eee13e10a
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File e3384023be667de7529538b11c12ec68.201307290946.sql.gz is 125.37 MB; this exceeds GitHub file size limit of 100 MB
Я прошел проверку и убедился, что этот файл не существует в каталоге и сделал Git add -u, мы попытались обрезать ветку, но это не работает, поскольку он не может найти файл для удаления.
Любая помощь будет высоко оценена.
Ответы
Ответ 1
Возможно, вы нажимаете несколько коммитов, один из которых включает большой файл, а другой - более новый, удаляющий этот файл.
В любом случае вы можете попробовать, как описано в " Фиксация" это превышает предел размера файла GitHubs размером 100 МБ", ветвь фильтра (если вы знаете имя/путь большого файла, который вы не видите)
git filter-branch --index-filter 'git rm --cached --ignore-unmatch e3384023be667de7529538b11c12ec68.201307290946.sql.gz' <sha1>..HEAD
Или, если вы не знаете, но хотите избавиться от какого-либо большого файла (скажем, > 90 МБ), вы можете использовать BFG repo уборщик
bfg --strip-blobs-bigger-than 90M my-repo.git
Это будет отслеживать для вас этот неуловимый большой файл в вашей истории репо и удалить его.
Обратите внимание, что после этого вам нужно будет сделать git push --force
, потому что история последних коммитов будет изменена.
Если кто-то уже клонировал ваше репо раньше, нужно немного сообщить об этом, чтобы предупредить их.
Ответ 2
В моем случае я исправил его по этой ссылке:
Справка GitHub | Работа с большими файлами
Обратите внимание, где написано giant_file (я этого не заметил)
$ git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch giant_file' \
--prune-empty --tag-name-filter cat -- --all
$ git commit --amend -CHEAD
$ git push
Ответ 3
Если у вас есть несколько больших файлов, вам нужно запустить еще одну команду:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch largfile1'
git filter-branch --index-filter 'git rm --cached --ignore-unmatch largefile2'
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
Вам нужно запустить
git update-ref -d refs/original/refs/heads/master
Затем вы можете запустить команду git filter-branch
Надеюсь, это поможет вам