Мусорный файл нужно удалить из всех коммитов в которых он есть, а не просто из актуального состояния проекта.
• Если файл добавлен в последнем коммите, то просто поправьте этот коммит через команду
commit --amend
git rm --cached "r0_code/trainee/Java_Полное_руководство_Герберт_Шилдт,_10_е_издание.pdf"
git commit --amend
• Если файл добавлен в старом коммите, то можно поправить этот коммит через команду
rebase --interactive
Как пользоваться командой смотрим в
инструкциях к гиту.
Примерно такПри запуске команды git rebase --interactive <коммит>
откроется текстовый редактор с планом пересборки ветки.
• Мы заменяем команду pick
на edit
в первой строке. Сохраняем и выходим редактора.
• Репозиторий переключается на состояние, когда мы только что добавили ненужный файл в репозиторий.
Значит мы можем просто удалить файл способом, который я указал в выше — правим текущий коммит через --amend
• Затем командой git rebase --continue
продолжим пересборку, чтобы гит повторил все последующие коммиты
• Самый простой и надёжный способ вычистить репозиторий от файла — использовать скрипт
filter-repo
git filter-repo --invert-paths --force --path "r0_code/trainee/Java_Полное_руководство_Герберт_Шилдт,_10_е_издание.pdf"
Последний вариант полностью автоматизирован и удалит файл сразу из всех веток.