Git Filter Repo

Advanced Git

Amanda Crawford-Adamo

Software and Data Engineer

Co je git filter-repo?

Příkaz Git Filter-Repo

git filter-repo

Nástroj pro rychlé a bezpečné přepisování historie repozitáře Git.

  • Přejmenování souborů nebo adresářů
  • Funguje na všech větvích současně

Použití

  1. Odstranění citlivých dat (např. hesel, tokenů)
  2. Vyčištění nepotřebných souborů
  3. Restrukturalizace repozitářů
  4. Zmenšení velikosti repozitáře
Advanced Git

Proces Filter-Repo

  1. Instalace git filter-repo pomocí pip

    pip install git-filter-repo
    
  2. Odstranění secrets.txt z každého commitu

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

Filtry Filter-Repo

--path: určuje, na které cesty se operace vztahuje

--invert-paths: operuje na všech cestách kromě těch uvedených v --path

Advanced Git

Výsledek Filter-Repo

Výstup

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

Klíčové důsledky

  • Všechny větve a commity byly aktualizovány
  • Všechny hashe commitů byly změněny
  • Po tomto kroku je nutný force push
  • Členové týmu budou muset znovu naklonovat repozitář
Advanced Git

Kdy používat filter-repo

Případy použití

  • Odstranění citlivých dat (např. hesel)
  • Vyčištění přeplněných repozitářů
  • Přejmenování nebo reorganizace souborů ve všech commitech

Tipy

  • Před použitím filter-repo vždy zálohujte repozitář
  • Před odesláním přepsané historie se domluvte se spolupracovníky
Advanced Git

Pojďme si procvičit!

Advanced Git

Preparing Video For Download...