A co-worker and I needed to remove all instances of a binary blob from one of our git repos a while back. This was a lot harder than I thought it should have been, in my opinion. However, distributed version control is not really designed to easily allow folks to delete every instance of a file. But, if you ever run into a case where you do need to expunge a file in git here is how we did it.
Get a new clone of the repo (in scratch/temp space)
git clone REPO_LOCATION
Detach it from the remote origin
git remote rm origin
Remove the file and rewrite history
git filter-branch --index-filter 'git rm --cached --ignore-unmatch FILENAME' HEAD
Remove garbage and lingering files
git reflog expire --expire=now --all && git gc --prune=now --aggressive
Replace the centralized repo (aka REPO LOCATION) and any copies others might be using. Everyone should re-clone the newly replaced repo.
There are several guides and HOWTOs that we stumbled across to do this; those might work better for your use case (Google is your friend). But, this five step process worked very well for us.