Reputation: 317
My .git file has grown to 229Mb and I wondering what the best way to cut down the size is. I know about git gc and have been using it a fair amount. I'm not totally sure about how git works, but I know that there is packaged information in there that I no longer need. Like, I know I no longer need the first five branches saved. Is there a way to completely erase really old branches or commits or something like that?
Upvotes: 10
Views: 6001
Reputation: 35331
The easiest would be to do a
git clone --depth 1 your_old_repo
on a new location and then swap it back in place.
see also git faq
Upvotes: 1
Reputation: 1323115
You have some techniques in "Reduce git repository size", but I mention also in it than git gc
alone can increase the size of the repo!
So some filter branch (also referenced in that question) can be needed, if nobody is actively pulling from your repo.
One factor which tends to increase rapidly the size of a Git repo is the versioning of too many binaries. It is one of Git limits, so try to:
Upvotes: 2
Reputation: 39787
If you want to keep your (reachable) commit history intact, then expire, repack, prune, and garbage collect:
git reflog expire --expire=0 --all
git repack -ad
git prune
git gc
This should be the minimal size you can get your repo and keep your commit history.
If not, i.e., you want or do not mind starting afresh with the current state of the repo as the initial commit, then Peter Tillemans' approach will do it.
Upvotes: 15