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...