Git Filter Repo

Git avansat

Amanda Crawford-Adamo

Software and Data Engineer

Ce este git filter-repo?

Comanda Git Filter-Repo

git filter-repo

Un instrument pentru rescrierea rapidă și sigură a istoricului unui depozit Git.

  • Redenumirea fișierelor sau directoarelor
  • Operează simultan pe toate ramurile

Scopuri

  1. Eliminarea datelor sensibile (ex.: parole, tokeni)
  2. Curățarea fișierelor inutile
  3. Restructurarea depozitelor
  4. Reducerea dimensiunii depozitului
Git avansat

Procesul Filter-Repo

  1. Instalați git filter-repo folosind pip

    pip install git-filter-repo
    
  2. Eliminați secrets.txt din fiecare commit

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

Filtre Filter-Repo

--path: specifică căile pe care se operează

--invert-paths: operează pe toate căile, cu excepția celor din --path

Git avansat

Rezultatul Filter-Repo

Rezultat

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

Implicații cheie

  • Toate ramurile și commiturile au fost actualizate
  • Toate hash-urile de commit au fost modificate
  • Este necesară o actualizare forțată (force push) după acest pas
  • Membrii echipei vor trebui să cloneze din nou depozitul
Git avansat

Când se utilizează filter-repo

Cazuri de utilizare

  • Eliminarea datelor sensibile (ex.: parole)
  • Curățarea depozitelor supraîncărcate
  • Redenumirea sau reorganizarea fișierelor în toate commiturile

Recomandări

  • Realizați întotdeauna o copie de rezervă înainte de a utiliza filter-repo
  • Coordonați-vă cu colaboratorii înainte de a trimite istoricul rescris
Git avansat

Să exersăm!

Git avansat

Preparing Video For Download...