Sådan fjerner du store binære filer fra et repository med git-filter-repo

Hvordan bruges git-filter-repo til at fjerne store binære filer fra et repository, når python er installeret, men kommandoer som cd, ls eller dir ikke fungerer i python-applikationen?

For at bruge git-filter-repo til at fjerne store binære filer fra et repository, når Python er installeret, men kommandoer som cd, ls eller dir ikke fungerer i Python-applikationen, skal du installere git-filter-repo, finde de store filer, oprette en fil med stierne til de filer, du vil fjerne, køre git-filter-repo og derefter force pushe ændringerne til dit remote repository.

Sådan bruges git-filter-repo til at fjerne store binære filer fra et repository

Hvis du har Python installeret, men kommandoer som cd, ls eller dir ikke fungerer i din Python-applikation, kan du stadig bruge git-filter-repo til at fjerne store binære filer fra dit repository. Følg disse trin:

  1. Installer git-filter-repo:

    pip install git-filter-repo
  2. Find de store filer:

    Du kan bruge følgende kommando til at finde store filer i dit repository:

    git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -n | tail -10 | awk '{print$1}')" | sort -k 2
  3. Opret en fil med de store filer, du vil fjerne:

    Lav en tekstfil (f.eks. files-to-remove.txt) og tilføj stierne til de store filer, du vil fjerne.

  4. Kør git-filter-repo:

    Brug følgende kommando til at fjerne de store filer:

    git filter-repo --invert-paths --paths-from-file files-to-remove.txt
  5. Push ændringerne til remote repository:

    Efter at have fjernet de store filer, skal du force pushe ændringerne til dit remote repository:

    git push origin --force --all
    git push origin --force --tags

Bemærk: Brug af git filter-repo ændrer historikken i dit repository, så sørg for at informere dit team og tage en backup, før du udfører disse ændringer.