代码之家  ›  专栏  ›  技术社区  ›  ChiliYago

推送后删除敏感数据

git
  •  2
  • ChiliYago  · 技术社区  · 6 年前

    所以我正在做一个项目,添加一个gitignore文件来防止一些敏感数据被包含,只是它没有按预期工作,现在我已经推送了它。有没有办法从远程存储库中删除它,以便在历史记录中没有证据?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Stephan    6 年前

    您可以在本地还原更改

    git commit --amend
    

    git reset <last-hash>
    

    然后做一个

    git push -f
    

    如果你:

    1. (知道你在做什么;-))

    提示:

    非常小心,在您 push -f ,因为改变历史通常是一个很大的禁忌,原因有很多

        2
  •  0
  •   Oliver Evans pms    6 年前

    如果敏感信息是在最近一次提交之前引入的,并且您希望将其从完整树中删除,我建议您使用git BFG。

    https://help.github.com/articles/removing-sensitive-data-from-a-repository/

    如果将敏感数据(如密码或SSH密钥)提交到Git存储库中,则可以将其从历史记录中删除。要从存储库的历史记录中完全删除不需要的文件,可以使用git filter branch命令或BFG Repo Cleaner。

    https://rtyley.github.io/bfg-repo-cleaner/

    BFG是git filter branch的一个更简单、更快的替代方案,用于清除git存储库历史中的错误数据:

    • 删除疯狂的大文件
    • 删除密码、凭据和其他私人数据