Git Filter Repo

Fortgeschrittenes Git

Amanda Crawford-Adamo

Software and Data Engineer

Was ist git filter-repo?

Git-Filter-Repo-Befehl

git filter-repo

Ein Tool, um die Git-Historie schnell und sicher umzuschreiben.

  • Dateien oder Verzeichnisse umbenennen
  • Wirkt auf alle Branches gleichzeitig

Zwecke

  1. Sensible Daten entfernen (z. B. Passwörter, Tokens)
  2. Überflüssige Dateien aufräumen
  3. Repositories umstrukturieren
  4. Repository-Größe reduzieren
Fortgeschrittenes Git

Filter-Repo-Prozess

  1. git filter-repo mit pip installieren

    pip install git-filter-repo
    
  2. secrets.txt aus jedem Commit entfernen

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

Filter-Repo-bezogene Filter

--path: gibt die Pfade an, auf die operiert wird

--invert-paths: auf alle Pfade außer denen in --path operieren

Fortgeschrittenes Git

Filter-Repo-Ergebnis

Ausgabe

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

Wichtige Folgen

  • Alle Branches und Commits wurden aktualisiert
  • Alle Commit-Hashes haben sich geändert
  • Danach ist ein Force-Push nötig
  • Teammitglieder müssen das Repo neu klonen
Fortgeschrittenes Git

Wann du filter-repo verwendest

Anwendungsfälle

  • Entfernen sensibler Daten (z. B. Passwörter)
  • Aufblähte Repositories aufräumen
  • Dateien über alle Commits hinweg umbenennen oder neu organisieren

Tipps

  • Mach vor dem Einsatz von filter-repo immer ein Backup
  • Stimm dich mit Mitwirkenden ab, bevor du umgeschriebene Historie pushst
Fortgeschrittenes Git

Lass uns üben!

Fortgeschrittenes Git

Preparing Video For Download...