Как мне удалить невыпущенный коммит, вызванный большим файлом в репо, который с тех пор был удален? - PullRequest
0 голосов
/ 09 октября 2019

Я довольно новичок в Git. В моем репозитории есть простые файлы кода MATLAB. Я сделал ошибку, загрузив в репозиторий большой файл (> 100 МБ). После этого я использовал следующие команды

git add --all
git commit --all --message "Moar"
git push --all 

Команда push вызвала следующую ошибку:

remote: ошибка: GH001: обнаружены большие файлы. Вы можете попробовать Git Large File Storage - https://git -lfs.github.com . удаленный: ошибка: трассировка: 47cf7a12aa48e59e3007901d70e3843b удаленный: ошибка: см. http://git.io/iEPt8g для получения дополнительной информации. remote: ошибка: файл prepro / workbench-windows64-v1.3.2 / workbench / bin_windows64 / rfMRI_REST1_LR_Atlas.dtseries.nii равен 418,46 МБ;это превышает ограничение размера файла GitHub 100,00 МБ ...! [удаленный отклонен] master -> master (обработчик предварительного приема отклонен)

Затем я запаниковал и удалил указанный выше большой файл, который вызывал ошибку. Но теперь я все еще получаю те же ошибки, когда пытаюсь подтолкнуть к своему хозяину!

Эти большие файлы больше не существуют в моем локальном репо. Так почему же мерзавец не позволяет мне давить? Кроме того, у меня есть некоторые изменения в локальном репо после того, как это произошло, поэтому я не могу вернуться к самой последней фиксации без этих больших файлов.

Есть ли способ аккуратно и точно сделать это, сообщив git, что больших файлов больше не существует в репо?

1 Ответ

1 голос
/ 09 октября 2019

Поскольку вы новичок, прочитайте этот ответ, и он предоставит вам много информации. Как переместить ГОЛОВУ назад в предыдущее место? (Отдельная голова) & Отменить фиксацию


Чтобы удалить контент из старой фиксации, я рекомендую этот инструмент:

https://rtyley.github.io/bfg-repo-cleaner/

Этоидеальный инструмент для такого рода задач

Репо-очиститель BFG

альтернатива git-filter-branch.

BFG - более простая и быстрая альтернативаgit-filter-branch для очистки неверных данных из истории вашего репозитория Git:

  • Удаление сумасшедших больших файлов
  • Удаление паролей, учетных данных и других личных данных

Примеры (с официального сайта)

Во всех этих примерах bfg является псевдонимом java -jar bfg.jar.

# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa}  my-repo.git
...