Può capitare di dover eliminare un file dalla storia di una repository git, i motivi possono essere:
- il file è grande e appesantisce la repo;
- il file doveva essere in
.gitignore; - il file ha un path non compatibile con Windows (per esempio contiene delle barre / insieme a barre
\); - il file contiene delle credenziali riservate;
- …
Per risolvere è necessario utilizzare questo comando:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch PATH-OF-THE-FILE' --prune-empty --tag-name-filter cat -- --allUna volta che lo stato della repository è ok è necessario il push forzato, dato che con questo comando ho riscritto la storia e conseguentemente il locale e il remote non sono più compatibili.
git push origin --force --all