epcim
2/1/2017 - 8:37 AM

git fatfiles, pernamently delete object from git repository

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