Код: Выделить всё
git filter-branch --index-filter "git rm --cached --ignore-unmatch path/to/file" --prune-empty HEAD
Но...
Когда-то нашёл в сети совет для поиска больших файлов:
Код: Выделить всё
git rev-list --all --objects | sed -n $(git rev-list --objects --all |
cut -f1 -d' ' | git cat-file --batch-check | grep blob |
sort -n -k3 | tail | while read hash type size; do
echo -n "-e s/$hash/$size/p "
done) | sort -n -k1
После вышеназванной команды filter-branch удалённый файл в списке присутствует.
Удалил .git/refs/original, сделал
Код: Выделить всё
git reflog expire --expire=0 --all && git repack -da && git prune
Всё равно присутствует. Хотя git checkout path/to/file выдаёт:
error: pathspec 'path/to/file' did not match any file(s) known to git.
Вопрос, думаю, уже понятен: где всё же хранится информация об удалённом файле, почему, и как её удалить напрочь?