Удаление файлов из git истории - неправильная ошибка редакции

Я следую инструкциям на Github (https://help.github.com/articles/remove-sensitive-data/), чтобы убрать грязный репозиторий. Я успешно очистил все .csv файлы, используя

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch *.csv' \
--prune-empty --tag-name-filter cat -- --all

И теперь нужно удалить все файлы .docx. Однако, когда я использую точно такую ​​же команду с *.docx, я получаю сообщение об ошибке: fatal: bad revision ' --prune-empty'

Я нажал на начало координат на github и клонировал новую копию, прежде чем делать эту вторую партию обновлений. Я не уверен, что я делаю неправильно/по-разному, что вызывает эту ошибку. Любая помощь очень ценится:)

Ответ 1

Решено... Я вынул пространство после обратной косой черты, которую я вставил перед частью --prune-empty, и теперь он работает так, как ожидалось! Не знаю, почему это работает, хотя....

Ответ 2

Git должен запускаться из cmd.exe или bash.

Проблема заключается в использовании ' в вашей команде. Windows использует только ". Команда, которую вы ищете, это:

git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch *.csv" \
--prune-empty --tag-name-filter cat -- --all

Ответ 3

У меня была аналогичная ошибка (fatal: bad revision 'rm') при ее запуске из командной строки Windows, и я не мог решить, как удалить ее, как вы это делали.

Но я мог бы решить, что он работает с той же точной командой из командной строки git bash. Может быть, это может помочь кому-то с той же проблемой.

Ответ 4

Ни один из предложенных ответов не работал для меня, хотя они работали без обратной косой черты

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch *.csv" --prune-empty --tag-name-filter cat -- --all

Ответ 5

В терминале Visual Studio Code напишите его в двойных кавычках и без обратной косой черты:

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch *.csv" --prune-empty --tag-name-filter cat -- --all