Meine erste Übergabe enthielt einige Protokolldateien. Ich habe *log
zu meiner .gitignore
hinzugefügt, und nun möchte ich die Log-Dateien aus meinem Repository entfernen.
git rm mylogfile.log
entfernt eine Datei aus dem Repository, aber auch aus dem lokalen Dateisystem.
Wie kann ich diese Datei aus dem Projektarchiv entfernen, ohne meine lokale Kopie der Datei zu löschen?
Aus der man-Datei:
Wenn
--cached
angegeben wird, muss der bereitgestellte Inhalt entweder mit der Spitze des Zweigs oder der Datei auf der Festplatte übereinstimmen, was es erlaubt, die Datei nur aus dem Index zu entfernen.
Also, für eine einzelne Datei:
git rm --cached mylogfile.log
und für ein einzelnes Verzeichnis:
git rm --cached -r mydirectory
Um einen ganzen Ordner aus dem Repo zu entfernen (z.B. Resharper-Dateien), gehen Sie folgendermaßen vor:
git rm -r --cached folderName
Ich hatte einige Resharper-Dateien übertragen und wollte nicht, dass diese für andere Projektbenutzer bestehen bleiben.
Wenn Sie sensible Daten übertragen haben (z. B. eine Datei mit Passwörtern), sollten Sie diese vollständig aus der Historie des Repositorys löschen. Hier ist ein Leitfaden, der erklärt, wie man das macht: http://help.github.com/remove-sensitive-data/