清空Github上某个文件的历史

有时候不小心,会在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 文件或文件夹地址

你可能感兴趣的:(Linux)