Git Filter Repo

Продвинутый Git

Amanda Crawford-Adamo

Software and Data Engineer

Что такое git filter-repo?

Команда Git Filter-Repo

git filter-repo

Инструмент для быстрой и безопасной перезаписи истории репозитория Git.

  • Переименование файлов и каталогов
  • Работает со всеми ветками одновременно

Задачи

  1. Удаление конфиденциальных данных (например, паролей, токенов)
  2. Очистка ненужных файлов
  3. Реструктуризация репозиториев
  4. Уменьшение размера репозитория
Продвинутый Git

Процесс Filter-Repo

  1. Установите git filter-repo с помощью pip

    pip install git-filter-repo
    
  2. Удалите secrets.txt из всех коммитов

    git filter-repo --path secrets.txt --invert-paths
    

Фильтры Filter-Repo

--path: указывает пути для обработки

--invert-paths: обрабатывает все пути, кроме указанных в --path

Продвинутый Git

Результат Filter-Repo

Вывод

  Parsed 150 commits
  New history written in 0.10 seconds; now repacking/cleaning...
  Repacking your repo and cleaning out old unneeded objects

Основные последствия

  • Все ветки и коммиты были обновлены
  • Все хеши коммитов изменились
  • После этого шага необходим принудительный push
  • Участники команды должны будут заново клонировать репозиторий
Продвинутый Git

Когда использовать filter-repo

Сценарии использования

  • Удаление конфиденциальных данных (например, паролей)
  • Очистка перегруженных репозиториев
  • Переименование и реорганизация файлов во всех коммитах

Советы

  • Всегда создавайте резервную копию репозитория перед использованием filter-repo
  • Координируйте действия с коллегами до публикации переписанной истории
Продвинутый Git

Давайте потренируемся!

Продвинутый Git

Preparing Video For Download...