无法删除重定基数后丢失的提交中的敏感数据



我意外地将包含API密钥信息的文件推送到主分支;删除";包含敏感信息的提交。因此,我使用了git rebase并强制push在敏感提交之前返回到几个提交。我以为我已经完全消除了这种敏感的承诺,但事实上,它仍然是历史。在重新建立基础后,我已经进行了几次新的推送,当我注意到敏感数据仍然存在时,我就不能再编辑该提交了。为了保护隐私,该功能被暂停。

我尝试了bfg清洁,结果被告知";无法编辑隐藏提交;并尝试cherry-pick,但是得到错误消息";致命的:修改错误">

我联系了GitHub的支持人员,但没有人回复我的问题。我现在不知道该怎么办。我如何才能回到重新定基后丢失的敏感提交?

出于安全原因,您必须尽快撤销该API密钥,以防止任何滥用。有人可能已经复制了API密钥。完成后,您可以在提交API密钥之前将分支重置为提交。

为此,请在添加凭据之前先查找提交ID。在分支内部,然后执行以下命令将本地分支重置为该提交。:

git reset --soft <commit id before leak>

您在提交后所做的所有工作都将保留在您的本地目录中,您可以从中创建一个新的提交。

通过在之后进行强制推送,在浏览历史记录时(例如在GitHub上(,泄露的凭据应该不再可见。如果有人已经知道凭据泄漏的提交ID,那么仍然可以访问提交。因此,不幸的是,撤销凭证是唯一真正的解决方案。

最新更新