我错误地检入(进入github)一些敏感文件。为了解决这个问题,我按照说明here并运行了以下命令:
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
但是,我可以转到我的提交历史记录以查看已删除的文件。
要解决此问题,如何从github提交历史记录中删除文件?
答案 0 :(得分:2)
尝试使用最佳做法是使用git filter-repo
的新工具replaces BFG and git filter-branch
。
注意:如果在运行上述命令时收到以下错误消息:
Error: need a version of `git` whose `diff-tree` command has the `--combined-all-paths` option`
这意味着您必须update git
。
请参阅“ Path based filtering”:
git filter-repo --path settings.json --invert-paths
然后git push --force
最后不需要所有这些repack / gc / prune:该工具将为您进行清理。