推送后删除敏感数据

时间:2018-07-19 13:16:40

标签: git

因此,我正在研究一个项目,并添加一个gitignore文件,以防止包含某些敏感数据,只是它无法按预期工作,现在已将其推送。有没有办法从远程存储库中删除它,因此历史记录中没有证据?

2 个答案:

答案 0 :(得分:1)

您可以在本地还原更改

input

git commit --amend

然后执行

git reset <last-hash>

但是只能这样做

如果您:

  1. (知道你在做什么;-))
  2. 在此期间,没有其他人对仓库进行了任何操作

提示:

请非常小心,在git push -f 之前,存储库处于您想要的状态,因为出于各种良好的原因,更改历史记录通常是一个很大的禁忌。

答案 1 :(得分:0)

如果敏感信息是在最近一次提交之前引入的,并且您想从整个树中删除它,我建议使用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存储库历史记录中的不良数据:

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