Supprimer complètement un fichier d’un dépôt git
Cela arrive de temps en temps, sur une application qu’on connait mal ou qu’on a pas conçue : on fait un dépôt git, le git ignore, et on oublie un fichier de configuration avec des password dedans.
Et bien sur, manque de pot, vous avez déjà tout envoyer dans un dépôt public Github. Vraiment, c’est pas votre journée...
Bref, il existe une petite astuce pour supprimer un fichier de tout les commits du dépôt. C’est un peu lent, car il va réécrire chaque commit que vous avez fait sur le projet.
- git filter-branch --tree-filter 'rm filename' HEAD
Après il faut utiliser git push -f pour réécrire le dépôt en ligne. Généralement, on évite cette opération, mais dans le cas d’un fichier avec des codes d’accès, c’est un moindre mal.
Et bien entendu, cela ne vous dispense pas de changer le password en question !