我有一个包含敏感信息的git repo单文件,我已在最新提交中删除了这些信息。现在我想从git repo中删除此文件的所有先前版本。这该怎么做?我认为可以使用git-filter-branch进行操作,但我还没有遇到可以理解的示例。
引用 git 文档:
假设您想从所有提交中删除一个文件(包含机密信息或版权侵犯):
git filter-branch --tree-filter "rm filename" HEAD
然而,如果某个提交的树中没有该文件,则对于该树和提交简单的 rm filename 命令将会失败。因此,您可能希望使用 rm -f 文件名
命令作为脚本。
因此,您可以运行 git filter-branch --tree-filter "rm -f 文件名" HEAD
命令来清除该文件的所有历史记录。