删除git仓库中的所有先前版本文件。

4
我有一个包含敏感信息的git repo单文件,我已在最新提交中删除了这些信息。现在我想从git repo中删除此文件的所有先前版本。这该怎么做?我认为可以使用git-filter-branch进行操作,但我还没有遇到可以理解的示例。
1个回答

12

引用 git 文档:

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

git filter-branch --tree-filter "rm filename" HEAD

然而,如果某个提交的树中没有该文件,则对于该树和提交简单的 rm filename 命令将会失败。因此,您可能希望使用 rm -f 文件名 命令作为脚本。

因此,您可以运行 git filter-branch --tree-filter "rm -f 文件名" HEAD 命令来清除该文件的所有历史记录。


太简单了!我只是从仓库中删除了文件的历史记录,然后添加并提交了最新版本。谢谢。 - phelpsw
2
@phelpsw,请确保从那个文件中更改密码。仍有可能它们已被泄露... - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接