git filter-repo --path config/db.yml --invert-paths
git push --force --all

配置文件里的连接密码被提交并推送到远端,即使后来删掉,历史提交里仍能查到。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,Git 保留完整历史,删除文件只影响最新提交,旧提交中的内容依然存在。

围绕「git 清理敏感信息」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。

处理上按这个顺序:立即更换已泄露的密码;用重写工具清理历史;强制推送后通知所有协作者重新克隆。

改完只确认一件事:远端历史中再也搜不到该密码,相关服务使用新密码运行正常。

作者 9823189