从提交历史记录中删除敏感配置数据

时间:2016-01-17 09:47:12

标签: git

我有一个与我合作过一段时间的本地项目。在此项目中,有一些包含密码的配置数据。我现在想在Github上公开这个项目,并希望拆分配置数据,而不是像我应该从一开始就检查敏感数据。但是,即使在HEAD执行此操作,数据仍然可以在提交历史记录中使用。

有没有办法解决这个问题,还是我必须删除所有旧提交,只使用公共仓库中最新的一个干净提交?

在最常见的可用选项之间?

2 个答案:

答案 0 :(得分:3)

有一个很棒的Git功能叫filter-branch。它允许您重新创建Git历史记录,在每个步骤应用命令。在这种情况下,您可以使用它来删除敏感文件:

git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch my/sensitive/file' HEAD

值得指出的是,与所有这样的Git魔法一样,新重写的分支将具有与原始不同的“家谱”,因此您将无法来回合并。换句话说,任何正在处理原始仓库的人都需要在提交任何工作之前获取新分支。

答案 1 :(得分:1)

git filter-branch是一个很好的解决方案,

但是bfg-repo-cleaner是比git filter-branch

更快的解决方案

enter image description here