我在git repo中有一个文件,它包含敏感信息。我在最近的提交中删除了这些信息。现在我想从git存储库中删除此文件的所有先前版本。怎么办呢?
我相信它可以通过git-filter-branch来完成,但我还没有遇到一个例子,我可以把头包裹起来。
答案 0 :(得分:2)
引用git文档:
假设您要删除文件(包含机密信息) 或所有提交中的侵犯版权:
git filter-branch --tree-filter 'rm filename' HEAD
但是,如果某个提交的树中缺少该文件,则很简单 对于该树和提交,rm文件名将失败。因此你可以改为 想使用
rm -f filename
作为脚本。
因此,您希望运行git filter-branch --tree-filter 'rm -f filename' HEAD
以删除该文件的所有历史记录