Git Filter Repo

Avancerad Git

Amanda Crawford-Adamo

Software and Data Engineer

Vad är git filter-repo?

Kommandot git filter-repo

git filter-repo

Ett verktyg för att snabbt och säkert skriva om Git-historik.

  • Byt namn på filer eller kataloger
  • Verkar på alla grenar samtidigt

Användningsområden

  1. Ta bort känslig data (t.ex. lösenord, token)
  2. Rensa onödiga filer
  3. Strukturera om arkiv
  4. Minska arkivets storlek
Avancerad Git

Filter-Repo-processen

  1. Installera git filter-repo med pip

    pip install git-filter-repo
    
  2. Ta bort secrets.txt från varje commit

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

Filter-Repo-relaterade filter

--path: anger vilka sökvägar som ska bearbetas

--invert-paths: verkar på alla sökvägar utom de som anges i --path

Avancerad Git

Filter-Repo-resultatet

Utdata

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

Viktiga konsekvenser

  • Alla grenar och commits uppdaterades
  • Alla commit-hashar ändrades
  • En force push krävs efter det här steget
  • Teammedlemmar måste klona arkivet på nytt
Avancerad Git

När ska man använda filter-repo?

Användningsfall

  • Ta bort känslig data (t.ex. lösenord)
  • Rensa uppsvällda arkiv
  • Byta namn på eller organisera om filer i alla commits

Tips

  • Säkerhetskopiera alltid arkivet innan du använder filter-repo
  • Samordna med medarbetare innan du pushar omskriven historik
Avancerad Git

Nu kör vi en övning!

Avancerad Git

Preparing Video For Download...