我有一个本地项目已经开发了一段时间。在这个项目中,有一些包含密码的配置数据。现在我想将这个项目公开到Github上,并且想要拆分配置数据并不检入敏感数据,就像我一开始应该做的那样。然而,即使我在HEAD上这样做,数据仍然可以在提交历史中找到。
是否有解决这个问题的方法,或者我必须删除所有旧的提交并只使用公共存储库中最新的干净提交?
在可用选项之间,哪个是最惯用的?
是否有解决这个问题的方法,或者我必须删除所有旧的提交并只使用公共存储库中最新的干净提交?
在可用选项之间,哪个是最惯用的?
有一个很棒的Git功能叫做 filter-branch
。它允许您在每个步骤应用一个命令重新创建Git历史记录。在这种情况下,您可以使用它来删除敏感文件:
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch my/sensitive/file' HEAD