title: 清空Github上某个文件的历史
date: 2015-01-08 16:04:53
categories: [经验]
tags: [Github,history]
今天在Github更新代码的时候,不小心把Gmail私钥文件更新上去了。即便我立刻删除了这个文件,可是在版本历史里面仍然可以看到这个文件的内容。这可把我吓坏了。
Google一圈以后,终于找到了解决办法。把某个文件的历史版本全部清空。
首先cd 进入项目文件夹下,然后执行以下代码:
git filter-branch --force --index-filter 'git rm --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
虽然不知道他们的作用是什么,不过真的解决了我的问题。看起来,以前我说我熟练掌握git,真是自不量力。