Unter Git kann es die Situation geben, dass eine Datei oder ein Verzeichnis nur aus dem Repository gelöscht werden soll, z.B. wenn sie/es in die .gitignore aufgenommen wurde.
Das klassische git rm würde auch die Datei aus dem Working Tree bzw. lokalen Dateisystem löschen. Abhilfe schafft die Option --cached
.
Soll nun z.B. eine Datei namens file_to_delete im Repository gelöscht werden, wird dies mit dem Kommando
git rm --cached file_to_delete
erledigt. Soll das gleiche mit einem Verzeichnis passieren, hilft das Kommando
git rm --cached -r dir_to_delete/
Commit und Push natürlich danach nicht vergessen.
git commit -m "Deleted file" git push
Pro-Tipp: soll aufgeräumt und alle Files, die mit der .gitignore matchen, nur im Repository gelöscht werden, kann folgendes Kommando genutzt werden
git rm --cached `git ls-files -i -X .gitignore`