KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I accidentally added, committed and pushed a huge binary file with my very latest commit to a Git repository. How can I make Git remove the object(s) that was/were created for that commit so my .git directory shrinks to a sane size again? Edit : Thanks for your answers; I tried several solutions. None worked. For example the one from GitHub removed the files from the history, but the .git directory size hasn't decreased: $ BADFILES=$(find test_data -type f -exec echo -n "'{}' " \;) $ git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $BADFILES" HEAD Rewrite 14ed3f41474f0a2f624a440e5a106c2768edb67b (66/66) rm 'test_data/images/001.jpg' [...snip...] rm 'test_data/images/281.jpg' Ref 'refs/heads/master' was rewritten $ git log -p # looks nice $ rm -rf .git/refs/original/ $ git reflog expire --all $ git gc --aggressive --prune Counting objects: 625, done. Delta compression using up to 2 threads. Compressing objects: 100% (598/598), done. Writing objects: 100% (625/625), done. Total 625 (delta 351), reused 0 (delta 0) $ du -hs .git 174M .git $ # still 175 MB :-(
Tags (comma-separated)
Save Edits
Cancel