我想在GitHub上放置一个Git项目,但它包含某些带有敏感数据的文件(用户名和密码,比如/ config/deploy.rb for capistrano).
我知道我可以将这些文件名添加到.gitignore,但这不会删除他们在Git中的历史记录.
我也不想通过删除/.git目录重新开始.
有没有办法删除Git历史记录中特定文件的所有痕迹?
当前状态:我将包含内部数据库凭据的文件提交到我的Git存储库.这很好,因为我一个人使用它.然后我的小组开始在这个项目中克隆,推送和拉动.我们现在有几个Git存储库(一个中心和一些开发人员).
问题:我们现在想要公开访问源代码和Git存储库,或者至少让Git管理其他对代码有贡献的细节.
问题是:什么是一个好的策略
a)使用来自中央或所有存储库的凭据删除文件,或
b)建立一个新的Git存储库作为外部世界的"接口"?
如果选择(b),我们如何轻松地将更改传回主存储库?
由于已经广泛分发,我们真的不想在每个当前的存储库上执行git rebase或者不执行操作git filter-branch.
我正在使用一个共享的 github 存储库来协作一个项目。因为我是个白痴,所以我提交并推送了一个包含我不想共享的密码的脚本文件(是的,我可以更改密码,但无论如何我想删除它!)。
有没有办法从github的历史记录中恢复提交,在本地删除密码,然后重新提交并推送更新的文件?我不想完全删除文件,也不想丢失 github 上的提交历史记录。
(这个问题 如何从 git 存储库中完全删除文件? 显示了如何删除敏感文件,但没有显示如何从文件中编辑敏感数据,所以这不是重复的)