我有一个与我合作过一段时间的本地项目。在此项目中,有一些包含密码的配置数据。我现在想在Github上公开这个项目,并希望拆分配置数据,而不是像我应该从一开始就检查敏感数据。但是,即使在HEAD执行此操作,数据仍然可以在提交历史记录中使用。
有没有办法解决这个问题,还是我必须删除所有旧提交,只使用公共仓库中最新的一个干净提交?
在最常见的可用选项之间?
答案 0 :(得分:3)
有一个很棒的Git功能叫filter-branch
。它允许您重新创建Git历史记录,在每个步骤应用命令。在这种情况下,您可以使用它来删除敏感文件:
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch my/sensitive/file' HEAD
值得指出的是,与所有这样的Git魔法一样,新重写的分支将具有与原始不同的“家谱”,因此您将无法来回合并。换句话说,任何正在处理原始仓库的人都需要在提交任何工作之前获取新分支。
答案 1 :(得分:1)