web-dev-qa-db-de.com

Das Löschen der Datei von Git Repo ist fehlgeschlagen. Es kann kein neues Backup erstellt werden

Ich habe versucht, eine Datei von meinem Remote-Repository zu entfernen, indem ich Folgendes ausgeführt habe:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

Aber Git beschwert sich darüber

Neue Sicherung kann nicht erstellt werden. Eine vorherige Sicherung ist bereits in refs/original/vorhanden.
Erzwinge das Überschreiben der Sicherung mit -f
rm: kann /.git-rewrite/backup-refs nicht entfernen: Berechtigung verweigert
rm: Verzeichnis kann nicht entfernt werden /.git-rewrite: Verzeichnis nicht leer

Dies geschah, nachdem ich bereits das .git-rewrite-Verzeichnis unter Windows gelöscht hatte.

Wie kann ich diese Datei entfernen? Es ist eine 29-MB-Datei, die sich auf meinem Repository befindet, daher muss ich die Datei unbedingt entfernen.

Ich habe versucht, das Commit in git rebase -i Zu löschen, aber anscheinend, weil das Commit viele verschiedene Dateien berührt hat, klagt Git über Konflikte und ich habe abgebrochen, um sicher zu gehen.

101
Cardin

Sie haben bereits eine Filterverzweigungsoperation ausgeführt. Nach dem Filter-Branch behält Git die alten Commits bei, falls etwas schief geht.

Sie finden diese in .git/refs/original/…. Löschen Sie entweder dieses Verzeichnis und alle darin enthaltenen Dateien oder verwenden Sie das -f Flag, um Git zu zwingen, die alten Referenzen zu löschen.

git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
197
knittl

Verwenden Sie diesen Befehl, um die ursprüngliche Sicherung zu entfernen:

git update-ref -d refs/original/refs/heads/master

Hier ist Gist, mit dem ich mein Git-Repo gefiltert habe: https://Gist.github.com/k06a/25a0214c98bc19fd6817

17
k06a

Ich hatte das gleiche Problem und die Antwort oben hat es nicht behoben. Es gab kein .git/refs/original/-Verzeichnis mehr. Die Lösung für mich war, die .git/packing-refs-Datei zu löschen.

4
Yaron

Fügen Sie dem Befehl filter branch eine Kraft hinzu.

2
Adam Dymitruk