在没有 bfg 的情况下从 git 存储库中删除密码

Removing passwords from git repo without bfg

有没有办法在不使用 BFG 且不删除文件历史的情况下替换 git 存储库中的敏感信息(API 密钥等)?

BFG 依赖于 JRE,如果有其他方法,我真的不想安装它。

Github 帮助页面推荐使用 filter-branch 但因为这是我的应用程序的主要路由文件 api 我想保留它的更改。

首先,如果您的更改已经推送到服务器,您必须使该敏感信息无效(通过重置密码、使 api 令牌过期等)。其他人可能已经克隆了存储库并且已经有了您的信息。然后重写故事将不会阻止该用户使用该信息。

然后,如果更改未发布,您可以交互地从上一次提交变基到引入密码的提交。并选择 edit 操作来修改删除密码的提交。这是 Rewriting History of Git book.

filter-branch 的建议替代方案