看到Spl中有这两个Interface, 自己尝试写了一下, 只实现了接口方法. 个人感觉, 适合做消息提醒及日志记录, 或类似于hook机制的插件.

下面是代码:

代码如下:


git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch path/to/your/file' HEAD
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

具体可以查看这篇文章 : http://help.github.com/remove-sensitive-data/

另外注意在多人协同工作时,防止其他人又将文件提交上来(如某些文件之前没有加入到.gitignore文件中,然后这个文件更改了),需要每个人执行上面除push外的其它代码,或者重新clone.