2011-06-19 8 views
80

próbowałem usunąć plik z mojego zdalnego repo uruchamiając:plik Oczyszczanie z Git repo nieudane, nie można utworzyć nową kopię zapasową

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

Ale Git zarzuca

Nie można utworzyć nową kopię zapasową. Poprzedniej kopii zapasowej już istnieje w odn/oryginalny/
Mocy nadpisując kopii zapasowej z -f
rm: nie można usunąć /.git-rewrite/backup-refs: Permission denied
rm: nie można usunąć /.git-rewrite katalogu: Katalog nie pusty

To było po tym, jak już usunąłem katalog .git-rewrite w systemie Windows.

Jak mogę usunąć ten plik? Jest to plik o rozmiarze 29 MB na moim repozytorium, więc muszę usunąć plik.

Próbowałem usunąć zatwierdzenie w git rebase -i, ale najwyraźniej, ponieważ zatwierdzenie dotknęło wielu różnych plików, Git skarży się na konflikty i przerwałam je, aby być bezpiecznym.

+1

Dla wyszukiwarek: może to również zastosowanie, gdy komunikat o błędzie jest ' .git-rewrite już istnieje, proszę go usunąć ". –

Odpowiedz

158

Wykonano już operację odgałęzienia filtru. Po odgałęzieniu filtra Git kontynuuje refowanie starych komend, na wypadek, gdyby coś poszło nie tak.

Możesz znaleźć te w .git/refs/original/…. Usuń ten katalog i wszystkie pliki wewnątrz lub użyj flagi -f, aby wymusić na Git usunięcie starych odniesień.

git filter-branch -f \ 
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD 
+7

Wreszcie udało się, dzięki! Spróbowałem użyć flagi -f, ale problem polegał na tym, że umieszczałem ją na końcu polecenia, np. HEAD -f. Widząc twoją komendę, spróbowałem umieścić flagę na starcie i zadziałało! = D – Cardin

+11

flagi opcji ('-f') idą przed refs (' HEAD'). refs go last – knittl

+0

Nadal pojawia się ten sam błąd po dodaniu -f OSTRZEŻENIE. Jakieś pomysły? – Yaron

1

Dodaj siłę do polecenia gałęzi filtra.

+0

tak, dodaj flagę "-f" – Patric

4

Miałem ten sam problem, a powyższa odpowiedź go nie naprawiła. Nie było już katalogu .git/refs/original /. Rozwiązaniem dla mnie było usunięcie pliku .git/packed-refs.

+0

Ten sam problem. Nie ma jednak pliku '.git/packed-refs' i nie ma folderu' original' w '.git/refs'. Ktoś? – XedinUnknown

+0

Rozwiązano [tutaj] (http://stackoverflow.com/questions/18746580/removing-history-from-git-git-command-fails), dodając flagę '-r' do polecenia. – XedinUnknown

+0

Ten sam problem tutaj. Usunięcie wypakowanych poprawek rozwiązało problem, ale zepsuło też resztę mojego katalogu git i musiałem przywrócić z kopii zapasowej. –

Powiązane problemy