К основному контенту

Сообщения

Сообщения за ноябрь, 2019

Удалить файлы из истории git, навсегда и бесследно

По факту, эта статейка — выжимка из статьи с блога Tinned Software / Experiencing Technology. Моего здесь мало. Удалить файлы из истории git нужно, когда в репозиторий: случайно попали критические данные (напр. логины, пароли, токены доступа); что-то тяжёлое было когда-то залито, а теперь не нужно и занимает вес в репозитории; и простое удаление с коммитом или реверс-коммиты не подходят. Так как git призван записывать всю историю манипуляций с файлами, придётся перелопачивать всё дерево изменений — весь индекс. А так как мерж-риквесты, форки, ветки и всё такое базируются на этом индексе, ветки потеряют своих родителей: репозиторий придётся другим пользователям клонировать заново, или сбрасывать свои коммиты. Для сохранения наработок придётся делать rebase. Короче говоря, операция не без последствий. Долгое время думаем о последствиях и вставляем в терминал с открытым корнем репозитория этот код (в дереве не должно оставаться висячих изменений!): git filter-branch --force --