4 How to do stuff with git
10 ### Remove history of all but select files in cloned repo
15 $ git gc --aggressive --prune=now
16 $ git remote rm origin
20 git ls-tree -r --name-only HEAD \
21 | grep -v file_i_want_to_keep_1 \
22 | grep -v file_i_want_to_keep_.. \
23 | grep -v file_i_want_to_keep_n \
24 | xargs git rm --cached -r --ignore-unmatch
27 $ git gc --aggressive --prune=now
30 ### Remove history of previously-removed (not in current tree) files
32 $ git log --pretty=format: --name-status | awk '$0 != "" {print $2}' | sort -u > /tmp/tree.old
33 $ git ls-tree -r --name-only HEAD > /tmp/tree.new
34 $ git filter-branch --prune-empty --index-filter 'grep -Fvxf /tmp/tree.new /tmp/tree.old | xargs git rm --cached -r --ignore-unmatch' HEAD