Perche filter-repo
git filter-repo e il moderno sostituto del deprecato git filter-branch. E drasticamente piu veloce — talvolta 100x — piu sicuro per default, e fornisce le operazioni di alto livello che la chirurgia della storia richiede.
Installazione
Su macOS: brew install git-filter-repo. Su Debian/Ubuntu: apt install git-filter-repo.
Rimuovere un file da tutta la storia
git filter-repo --path secrets.env --invert-paths
Estrarre una sottodirectory come nuovo repo
git clone --no-local original/ extracted/
cd extracted
git filter-repo --subdirectory-filter packages/foo
Rinominare percorsi
git filter-repo --path-rename old/dir/:new/dir/
Aggiornare email autori
cat > mailmap.txt <<'EOF'
Jane Doe <[email protected]> <[email protected]>
EOF
git filter-repo --mailmap mailmap.txt
Funzionalita di sicurezza
git filter-repo --force
Errori comuni
Eseguire sull'unico clone con --force e senza backup. Clonare sempre prima.
Performance
filter-repo usa git fast-export/fast-import, motivo della sua velocita.