Не удалось очистить файл из репозитория Git, не удалось создать новую резервную копию
Я попытался удалить файл из моего удаленного РЕПО, запустив:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
но ГИТ жалуется, что
не удается создать новую резервную копию. Предыдущая резервная копия уже существует в refs / original/
Принудительная перезапись резервной копии с помощью-f
rm: не удается удалить /.ГИТ-рерайт/резервное копирование-ссылки : доступ запрещен
РМ: не удается удалить каталог /.git-переписать: Каталог не пустой
Это было после того как я уже удалил .git-переписать каталог на Windows.
Как я могу удалить этот файл? Это 29Mb файл, сидящий на моем РЕПО, поэтому мне очень нужно удалить файл.
Я попытался удалить фиксацию в git rebase -i
, но, видимо, потому, что фиксация коснулась многих разных файлов, Git жалуется на конфликты, и я прервался, чтобы быть в безопасности.
4 ответа:
вы уже выполнили операцию ветвления фильтра. После ветви фильтра Git сохраняет ссылки на старые коммиты, если что-то пойдет не так.
вы можете найти их в
.git/refs/original/…
. Либо удалите этот каталог и все файлы внутри, либо используйте-f
флаг, чтобы заставить Git удалить старые ссылки.git filter-branch -f \ --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
используйте эту команду для удаления исходной резервной копии:
git update-ref -d refs/original/refs/heads/master
вот суть, которую я использовал для фильтрации-ветви моего РЕПО git: https://gist.github.com/k06a/25a0214c98bc19fd6817