Удаление частной информации от старых фиксаций Мерзавца

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

Править: Для разъяснения я не хочу полностью удалять файлы, которые содержат эту частную информацию, потому что они все еще используются. Скорее я хочу удалить/очистить/изменение возникновение определенных строк в них.

13
задан Roberto Tyley 25 April 2013 в 20:08
поделиться

1 ответ

Я написал скрипт для этого некоторое время назад. Вы можете найти его здесь: https://gist.github.com/dound/76ea685c05c4a7895247457eb676fe69

(оригинал можно посмотреть на archive.org: https://web.archive.org/web/20160208235904/http://dound.com:80/2009/04/git-forever-remove-files-or-folders-from-history/)

Скрипт основан на инструменте git-filter-branch, который поставляется с git. Если вам интересно, вы можете прочитать больше об удалении файлов из git-репозитория здесь, но использование скрипта по приведенной выше ссылке должно быть простым и все, что вам действительно нужно для удаления этой частной информации.

2
ответ дан 2 December 2019 в 01:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: