所以我正在处理一个项目,并添加一个gitignore文件以防止一些敏感数据被包括在内,只是它无法按预期工作,现在我已经推送了它。有没有办法从远程存储库中删除它,这样历史记录中就没有它的证据?
您可以恢复本地的更改
git commit --amend
或
git reset <last-hash>
然后做
git push -f
但这只能通过完成
如果您:
- (知道你在做什么;-(
- 在此期间,没有其他人对回购做什么
提示:
要非常小心,在push -f
之前,存储库处于您希望的状态,因为由于各种好的原因,更改历史通常是一个很大的禁忌
如果敏感信息是在最近一次提交之前引入的,并且您希望将其从完整的树中删除,我建议使用git BFG。
请参阅:https://help.github.com/articles/removing-sensitive-data-from-a-repository/
如果将敏感数据(如密码或SSH密钥(提交到Git存储库中,则可以将其从历史记录中删除。要从存储库的历史记录中完全删除不需要的文件,可以使用git-filter-branch命令或BFG Repo Cleaner。
此外,https://rtyley.github.io/bfg-repo-cleaner/
BFG是gitfilter分支的一个更简单、更快的替代方案,用于清除git存储库历史中的坏数据>:
- 删除疯狂的大文件
- 删除密码、凭据和;其他专用数据