清除源中推送的机密数据的历史记录?

时间:2019-07-20 07:43:47

标签: git

前一段时间,我们推送了一些app.settings文件,其中包含敏感数据,例如连接字符串。

那是很久以前的事,从那以后,我们删除了(不包含敏感数据)(通过推送新版本)。

但是,如果有人尝试查看app.settings的历史-他将看到连接字符串。

问题

即使进行历史记录查找,也如何使密码不存在。 另外-与之后的一次提交相比,我不希望看到connection strings已被删除。

说明:我不想删除文件,只需删除几行。

可视化:

2017年-提交-connectionstring=***,***
2018年-提交-已删除connectionstring=***,***
2019-commits的历史,我将看到敏感数据。

我想删除2017年的敏感行,并且我不想看到2018年现在少了几行(敏感数据将在diff imho中显示)。

1 个答案:

答案 0 :(得分:5)

这是GitHub帮助页面“ Removing sensitive data from a repository”中描述的经典案例。
如前所述,它将涉及重写,然后强制推送Git存储库的整个历史记录。

但是考虑到Git的分布式特性,其他人可能已经克隆了您的存储库(旧版本)。

这意味着 main 建议是:首先,现在更改您的连接凭据。
确保旧版本的敏感数据不再敏感

然后,您可能会担心清理存储库的历史记录。