Wyczyszczenie pliku z Git repo nie powiodło się, nie można utworzyć nowej kopii zapasowej

Próbowałem usunąć plik z mojego zdalnego repo, uruchamiając:

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

Ale Git narzeka, że

Nie można utworzyć nowej kopii zapasowej. Poprzednia kopia zapasowa już istnieje w refs / original /
Wymuś nadpisanie kopii zapasowej za pomocą-f
rm: nie można usunąć /.git-rewrite/backup-refs: Permission denied
rm: nie można usunąć katalogu/.git-rewrite: Katalog nie jest pusty

To było po tym, jak już usunąłem .Git-rewrite katalog na Windows.

Jak można Usunąć ten plik? Jest to plik 29MB siedzący na moim repo, więc muszę usunąć plik.

Próbowałem usunąć commit w git rebase -i, ale najwyraźniej ponieważ commit dotknął wielu różnych plików, Git narzeka na konflikty i przerwałem dla bezpieczeństwa.

Author: Roberto Tyley, 2011-06-19

4 answers

Wykonałeś już operację filter-branch. Po filter-branch, Git zachowuje refy do starych commitów, na wypadek gdyby coś poszło nie tak.

Znajdziesz je w .git/refs/original/…. Albo usuń ten katalog i wszystkie pliki wewnątrz, albo użyj znacznika -f, aby zmusić Git do usunięcia starych odniesień.
git filter-branch -f \
--index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
 171
Author: knittl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-04 00:53:09

Użyj tego polecenia, aby usunąć oryginalną kopię zapasową:

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

Oto gist, którego użyłem do filter-branch mojego git repo: https://gist.github.com/k06a/25a0214c98bc19fd6817

 11
Author: k06a,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 20:13:38

Miałem ten sam problem i powyższa odpowiedź go nie naprawiła. Nie było .Git/refs/ original / katalog left. Rozwiązaniem dla mnie było usunięcie .plik git/packed-refs.

 4
Author: Yaron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-23 23:39:33

Dodaj siłę do polecenia filter branch.

 1
Author: Adam Dymitruk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-19 18:31:34