【问题标题】:Delete all previous versions of file in git repo [duplicate]删除 git repo 中所有以前版本的文件 [重复]
【发布时间】:2015-01-06 00:43:47
【问题描述】:

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

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

【问题讨论】:

    标签: git git-filter-branch


    【解决方案1】:

    引用 git 文档:

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

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

    但是,如果某个提交的树中不存在该文件,则一个简单的 该树的 rm 文件名将失败并提交。因此,您可以改为 想使用rm -f filename作为脚本。

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

    【讨论】:

    • 这很简单!在从存储库中删除其历史记录后,我刚刚添加并提交了该文件的最新版本。谢谢。
    • @phhelpsw,确保更改该文件中的密码。他们仍然有可能被入侵......
    猜你喜欢
    • 2014-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 2016-01-07
    • 2018-12-26
    • 1970-01-01
    • 2012-02-21
    相关资源
    最近更新 更多