Очистка данных репозитория
Хотя одним из преимуществ Git является его способность хранить длинные истории для репозиториев эффективно, есть времена, когда необходимо очистить данные.
Наиболее распространенные ситуации, когда вы хотите:
- Значительно уменьшите размер репозитория, удалив историю.
- Удалите большой файл, который был случайно отправлен.
- Удалите конфиденциальный файл, который не должен быть отправлен.
Если вы фиксируете конфиденциальные данные (например, пароль, ключ) в Git, его можно удалить из журнала. Обычно используются два инструмента:
Инструмент git filter-repo
Средство git filter-repo предназначено для перезаписи истории.
Основной filter-repo содержит библиотеку для создания инструментов для переписывания истории. Пользователи с специализированными потребностями могут быстро создавать совершенно новые инструменты для переписывания истории.
Заметка
Дополнительные сведения см. в репозитории git-filter-repo.
BFG Repo-Cleaner
BFG Repo-Cleaner — это часто используемое средство с открытым исходным кодом для удаления или исправления содержимого в репозиториях. Её проще использовать, чем команду git filter-branch. Для одного файла или набора файлов используйте параметр --delete-files:
$ bfg --delete-files file_I_should_not_have_committed
В следующем сценарии bash продемонстрировано, как найти все места, где находится файл с именем passwords.txt в репозитории. Кроме того, чтобы заменить весь текст в нем, можно выполнить параметр --replace-text:
$ bfg --replace-text passwords.txt
Дополнительные сведения см. в следующем разделе:
Быстро перезаписать журнал репозитория Git.
удаление файлов изхранилища больших файлов Git.
удаление конфиденциальных данных из репозитория.