Как из гита навсегда удалить файл?

Как мне объяснили, просто удаление файла и повторный коммит удалит файл из текущего состояния проекта, но сам файл в истории репозитория останется. Вопрос, как тогда удалить файл так, чтобы он ушёл полностью ?

p.s. Файл был добавлен много коммитов назад
  • Вопрос задан
  • 424 просмотра
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Самый надёжный способ вычистить репозиторий от файла — использовать скрипт filter-repo
# клонируем репозиторий в соседний каталог
# иначе придётся использовать ключ --force
git clone --no-local . ../clonerepo/
# переходим в свежий клон
cd ../clonerepo
# чистим
git filter-repo --path "path/to/file" --invert-paths
# проверим что файл исчез
git log --oneline --name-status -- "path/to/file"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@TheAndrey7
Вопрос, как тогда удалить файл так, чтобы он ушёл полностью?

Собственно говоря - никак. Проще сменить токены/пароли и прочую информацию, которая была в файле, сделав её неактуальной.

Вообще это осуществимо, но ценой переписывания всей истории git с момента добавления файла что приведёт к изменению хешей коммитов. При совместной разработке всем придётся бросать свою работу и заново клонировать репозиторий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы