Очистка данных репозитория

Завершено

Хотя одним из преимуществ 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.

удаление конфиденциальных данных из репозитория.

BFG Repo Cleaner.