Par Anonyme (non vérifié) , 29 avril 2026

Pourquoi filter-repo

git filter-repo est le remplaçant moderne du déprécié git filter-branch. Il est dramatiquement plus rapide — parfois 100x — plus sûr par défaut, et fournit les opérations de haut niveau dont la chirurgie d'historique a vraiment besoin : supprimer des fichiers, renommer des chemins, retirer des auteurs, diviser des sous-répertoires et changer les emails sur tous les commits.

Installation

filter-repo n'est pas livré avec Git mais est largement empaqueté. Sur macOS : brew install git-filter-repo. Sur Debian/Ubuntu : apt install git-filter-repo.

Supprimer un fichier de toute l'histoire

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

Extraire un sous-répertoire en nouveau repo

git clone --no-local original/ extracted/
cd extracted
git filter-repo --subdirectory-filter packages/foo

Renommer des chemins

git filter-repo --path-rename old/dir/:new/dir/

Mettre à jour les emails d'auteur

cat > mailmap.txt <<'EOF'
Jane Doe <[email protected]> <[email protected]>
EOF
git filter-repo --mailmap mailmap.txt

Caractéristiques de sécurité

git filter-repo --force

Erreurs courantes

Exécuter sur votre seul clone avec --force et sans backup. Toujours cloner d'abord. Oublier que filter-repo supprime le remote d'origine pour empêcher les pushes accidentels.

Performance

filter-repo streame via git fast-export/fast-import.