Use The BFG, not git-filter-branch...
The BFG gives a foolproof method of getting rid of large files, much easier than using git filter-branch
, see http://rtyley.github.io/bfg-repo-cleaner/ :
$ bfg --strip-blobs-bigger-than 100M my-repo.git
...still here?
If you'd like to try to figure out what's gone awry when you were following the steps from "Removing Objects" in section 9.7 of the ProGit book, there are unfortunately several places where it's possible to go wrong.
The news.tar
file is currently kept by one of your branches, tags or some other kind of ref - we know this because the file showed up when you ran git rev-list --objects --all
(the '--all' param means look at all refs, beyond just branches - tags, and other exotic types of ref) ...but your git log --oneline -- news/news.tar
command does not have an --all
, it's just listing your current branch. Your blob is being held by a different reference- probably a different branch or tag.
Seriously, just use The BFG.
Full disclosure: I'm the author of the BFG Repo-Cleaner.