Удалить файл из git истории хранилища - PullRequest
1 голос
/ 14 января 2020

Я зарегистрировал (в github) некоторые конфиденциальные файлы по ошибке. Чтобы исправить это, я следовал инструкциям здесь и выполнил команды:

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch settings.json" --prune-empty --tag-name-filter cat -- --all
echo "settings.json" >> .gitignore
git add .gitignore
git commit -m "Add settings.json to .gitignore"
git push origin --force --all
git push origin --force --tags
git for-each-ref --format="delete %(refname)" refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now

Однако я могу go в своей истории коммитов увидеть удаленный файл.

Чтобы исправить эту проблему, как я могу удалить файл из истории коммитов github?

enter image description here

enter image description here

1 Ответ

0 голосов
/ 14 января 2020

Попробуйте вместо этого использовать лучший метод - использовать новый инструмент git filter-repo, который заменяет BFG и git filter-branch.

Примечание: если вы получаете следующее сообщение об ошибке при выполнении вышеупомянутых команд:

Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`

означает, что вам необходимо обновить git.


См. " Фильтрация на основе пути":

git filter-repo --path settings.json --invert-paths

Затем git push --force

Нет необходимости для всех этих repack / gc / prune в конце: инструмент выполнит очистку за вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...