有时候不小心,会在github上面更新代码的时候,不小心把个人的私钥等敏感信息更新上去。即便立刻删除,浏览者在版本历史里面也仍然可以看到这些内容。这可是非常严重的失误。
可以用如下的办法解决:
在项目文件夹下执行以下命令:
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch 文件或文件夹地址' --prune-empty --tag-name-filter cat -- --all
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
这样就可以删除github上的历史版本的指定文件了。然后别忘了及时更新自己的.gitignore文件的忽略规则。
更新完成后,也别忘了清空自己本地git的相关缓存:
使用以下命令:
git ls-files
可以列出当前git中明确包含的文件,然后你可以逐个显式地删除它们:
git rm --cached 文件或文件夹地址