git fatfiles, pernamently delete object from git repository
#http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository
# find fat files
git rev-list --objects --all |
while read sha1 fname
do
echo -e "$(git cat-file -s $sha1)\t$\t$fname"
done | sort -n
# find fat files2:
git rev-list --all --objects | \ sed -n $(git rev-list --objects --all | \ cut -f1 -d' ' | \ git cat-file --batch-check | \ grep blob | \ sort -n -k 3 | \ tail -n40 | \ while read hash type size; do echo -n "-e s/$hash/$size/p "; done) | \ sort -n -k1
...
89076 images/screenshots/properties.png
103472 images/screenshots/signals.png
9434202 video/parasite-intro.avi
#git-eradicate (for video/parasite.avi):
git filter-branch -f --index-filter \ 'git rm --force --cached --ignore-unmatch video/parasite-intro.avi' \ -- --all rm -Rf .git/refs/original && \ git reflog expire --expire=now --all && \ git gc --aggressive && \ git prune
# remove specific file/folder by pattern
git filter-branch --tree-filter 'git rm -r -f --ignore-unmatch *.pyc' HEAD