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

3
我有一个本地项目已经开发了一段时间。在这个项目中,有一些包含密码的配置数据。现在我想将这个项目公开到Github上,并且想要拆分配置数据并不检入敏感数据,就像我一开始应该做的那样。然而,即使我在HEAD上这样做,数据仍然可以在提交历史中找到。
是否有解决这个问题的方法,或者我必须删除所有旧的提交并只使用公共存储库中最新的干净提交?
在可用选项之间,哪个是最惯用的?
2个回答

3

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

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

值得注意的是,就像所有Git魔法一样,重新编写后的分支将具有不同的“家族树”,因此您将无法进行相互合并。换句话说,任何在原始仓库上工作的人都需要在提交任何工作之前获取新的分支。

2

git filter-branch是一个不错的解决方案,

但是bfg-repo-cleanergit filter-branch更快。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接