假设我有敏感信息,例如Git提交中的公司IP地址,实际上可能是100次提交。有没有办法使用Git命令从所有提交中删除/替换该令牌?
答案 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地址是否足够敏感以保证这种响应的原因。
在安全方面,如果这些提交已经公开,您应该立即认为提交中信息的机密性受到损害。您应该立即采取适当的安全措施来减轻此时的风险。