从所有Git提交中删除敏感信息

时间:2016-04-20 05:17:44

标签: git github

假设我有敏感信息,例如Git提交中的公司IP地址,实际上可能是100次提交。有没有办法使用Git命令从所有提交中删除/替换该令牌?

1 个答案:

答案 0 :(得分:2)

Github suggests最简单的方法是使用名为BFG repo cleaner的程序。

  

使用BFG

     

BFG Repo-Cleaner是git filter-branch的更快,更简单的替代品   用于删除不需要的数据例如,删除你的   包含敏感数据的文件并保持最新的提交保持不变),运行:

bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA
     

将password.txt中列出的所有文本替换为可以找到的文本   在您的存储库历史记录中,运行:

bfg --replace-text passwords.txt 
     

有关完整使用和下载的信息,请参阅BFG Repo-Cleaner的文档   指令。

如果您将此回购推送到集中位置,确保所有开发人员事先知道您在做什么。否则,你会得到一些非常沮丧的人,他们的存储库非常破碎并且丢失了提交。您还需要强制推送到远程,因为您正在重写历史记录。这个过程对每个人来说通常都是一个巨大的麻烦,这就是为什么我询问IP地址是否足够敏感以保证这种响应的原因。

在安全方面,如果这些提交已经公开,您应该立即认为提交中信息的机密性受到损害。您应该立即采取适当的安全措施来减轻此时的风险。