Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

Как удалить файл из истории Git?

Не могу полностью удалить файл из истории Git.
Файл - бинарник с русским названием, и так получилось что пришлось чуть исправить его название - изменить регистр пары букв. Сделал коммит, залил на GitHub. Теперь и в консоли и в gui git'a "висит" сообщение что файл со старым названием удален. Удалить через консоль нельзя - файл не существует, отмена изменений в gui ни к чему не приводит - через несколько секунд сообщение снова появляется. После новых коммитов ничего не меняется. На диске файла нет. ОС - Win8.
Я хотел бы полностью удалить файл из истории (т.е. из всех коммитов, где он упоминается). Как это сделать?


Ответ

В документации GitHub отлично описан этот кейс: https://help.github.com/articles/remove-sensitive-data/
Сначала делаем
git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch ' \ --prune-empty --tag-name-filter cat -- --all
заменяем на название файла который нужно вычистить из репы. Затем:
git push origin --force --all git push origin --force --tags

Комментариев нет:

Отправить комментарий