【发布时间】:2015-01-06 00:43:47
【问题描述】:
我在 git 存储库中有一个文件,其中包含敏感信息。我已在最新提交中删除了此信息。现在我想从 git 存储库中删除该文件的所有以前版本。如何做到这一点?
我相信它可以用 git-filter-branch 完成,但我还没有遇到一个我可以理解的例子。
【问题讨论】:
标签: git git-filter-branch
我在 git 存储库中有一个文件,其中包含敏感信息。我已在最新提交中删除了此信息。现在我想从 git 存储库中删除该文件的所有以前版本。如何做到这一点?
我相信它可以用 git-filter-branch 完成,但我还没有遇到一个我可以理解的例子。
【问题讨论】:
标签: git git-filter-branch
引用 git 文档:
假设您要删除一个文件(包含机密信息 或侵犯版权)来自所有提交:
git filter-branch --tree-filter "rm filename" HEAD但是,如果某个提交的树中不存在该文件,则一个简单的 该树的 rm 文件名将失败并提交。因此,您可以改为 想使用
rm -f filename作为脚本。
所以你想运行git filter-branch --tree-filter "rm -f filename" HEAD 来清除该文件的所有历史记录
【讨论】: