删除 git repo 中所有以前版本的文件

phe*_*psw 3 git git-filter-branch

我在 git repo 中有一个文件,它包含敏感信息。我已在最新提交中删除了此信息。现在我想从 git 存储库中删除此文件的所有先前版本。如何才能做到这一点?

我相信它可以用 git-filter-branch 来完成,但我还没有遇到一个可以让我理解的例子。

Mau*_*ano 6

引用 git 文档:

假设您想从所有提交中删除一个文件(包含机密信息或侵犯版权):

git filter-branch --tree-filter "rm filename" HEAD
Run Code Online (Sandbox Code Playgroud)

但是,如果某个提交的树中不存在该文件,则该树的简单 rm 文件名将失败并提交。因此,您可能希望将其rm -f filename用作脚本。

所以你想运行git filter-branch --tree-filter "rm -f filename" HEAD以清除该文件的所有历史记录

  • @phelpsw,确保从该文件更改密码。他们仍然有可能受到损害...... (2认同)