Supprimer un fichier dans l’historique de git¶
Un moment d’inatention et hop, un fichier de plusieurs mégaoctets se retrouve dans le dépot.
Afficher la taille de tous les fichiers de l’historique
git rev-list --objects --all |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
sed -n 's/^blob //p' |
sort --numeric-sort --key=2 |
cut -c 1-12,41- |
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
Pour le supprimer de tout l’historique, il faut commencer par repérer un commit où il n’existe pas, par exemple bon-commit.
Ensuite, passer la commande
git filter-branch --index-filter 'git rm --cached --ignore-unmatch nom_du_fichier' bon-commit..HEAD