Я попытался удалить файл из удаленного репо, выполнив:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD
Но Git жалуется, что
Невозможно создать новую резервную копию. Предыдущая резервная копия уже существует в refs / original /
Принудительно перезаписывает резервную копию с помощью -f
rm: невозможно удалить /.git-rewrite/backup-refs: Permission denied
rm: cannot remove directory /.git-rewrite: Directory not empty
Это было после того, как я уже удалил каталог .git-rewrite в Windows.
Как мне удалить этот файл? Это файл размером 29 Мбайт, который находится в моем репозитории, поэтому мне совершенно необходимо его удалить.
Я попытался удалить фиксацию git rebase -i
, но, видимо, поскольку фиксация затронула много разных файлов, Git жалуется на конфликты, и я прервался, чтобы быть в безопасности.
.git-rewrite already exists, please remove it
.Ответы:
Вы уже выполнили операцию ветвления фильтра. После filter-branch Git хранит ссылки на старые коммиты на случай, если что-то пойдет не так.
Вы можете найти их в
.git/refs/original/…
. Либо удалите этот каталог и все файлы в нем, либо используйте-f
флаг, чтобы заставить Git удалить старые ссылки.источник
-f
) идет перед refs (HEAD
). рефери идут последнимиgit add
. Я получал ту же ошибку, что и исходный плакат, даже после удаления.git/refs/original/
папки и использования-f
флага вgit filter-branch
команде. В моем случае решение было удалить.git/packed-refs
файл.--ignore-unmatch
в команду,git rm
и все прошло гладко!Используйте эту команду для удаления исходной резервной копии:
Вот суть, которую я использовал для фильтрации моего репозитория git: https://gist.github.com/k06a/25a0214c98bc19fd6817
источник
.git/refs/original/
не решает проблему.git show-ref | awk '/ refs.original.refs/{print$2}'
чтобы найти все резервные копии вашего репо.У меня была та же проблема, и ответ выше не помог. Не осталось каталога .git / refs / original /. Решением для меня было удаление файла .git / pack-refs.
источник
.git/packed-refs
файла, ни папкиoriginal
в.git/refs
. Кто угодно?-r
флага к команде.Добавьте силу к команде ветвления фильтра.
источник