问题

在整理以前的项目时,顺带着也整理一下自己的github仓库。在重新建立一些项目的仓库并上传后,偶然间,我悲惨地发现有的密钥、密码之类的私密信息还低调地趟在代码中间,也随着git push上了公共仓库,也就意味着出现了隐私信息泄露的问题。
虽然我可以现在修改,但是以前的commit里依然是有这些信息的,所以我就搜了一下如何彻底处理这些私密信息。

搜索

随手一搜就搜到了解决办法,核心是这条很长的git语句,其中的user/views.py是涉密文件的相对路径。

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch user/views.py' --prune-empty --tag-name-filter cat -- --all

之后强制push即可

git push origin --force --all

插曲

用了以上的方法后,惊喜(吓)地发现,不仅删除了私密信息,连这个文件都没了……真的毁尸灭迹了。
万幸我的所有项目文件都在群晖NAS的文件同步软件内,删了也可以找回,不然就酿成悲剧了。
所以,操作前,一定要备份目标文件!!!