Git Garbage collection doesnt seem to fully work
I’m a little confused as how to completely clean out my garbage…
git count-objects -v -H
warning: garbage found: ./objects/pack/gc_7174754666377259454.idx_tmp warning: garbage found: ./objects/pack/gc_7174754666377259454.pack_tmp warning: garbage found: ./objects/pack/pack-f5b13f50fe2e4d773028c51f547822e6f2fe720b.bitmap count: 0 size: 0 bytes in-pack: 32986 packs: 1 size-pack: 44.14 MiB prune-packable: 0 garbage: 3 size-garbage: 41.20 MiB
So that implies to me I have 41 megs of garbage in my repo?
git gc –prune=now –aggressive
Counting objects: 32986, done. Delta compression using up to 8 threads. Compressing objects: 100% (31610/31610), done. Writing objects: 100% (32986/32986), done. Total 32986 (delta 23902), reused 9080 (delta 0)
And when I run count objects again i still have the same output with
size-garbage: 41.20 MiB
Do I just manually delete the garbage files? At least one is quite plump at the very least.
12/02/2014 02:06 PM 0 gc_7174754666377259454.idx_tmp 12/02/2014 02:06 PM 43,195,455 gc_7174754666377259454.pack_tmp 2 File(s) 43,195,455 bytes 0 Dir(s) 502,905,999,360 bytes free
One Solution collect form web for “Git Garbage collection doesnt seem to fully work”
C:\Users\VonC\prog\git\git>git log -Ssize-garbage|more
This show the
size-garbage output has been introduced in commit 1a20dd4 by Nguyễn Thái Ngọc Duy (
pclouds) for git 1.8.3 (May 2013)
size-garbage: disk space consumed by garbage files, in KiB
count-objects: report how much disk space taken by garbage files
Also issue warnings on loose garbages instead of errors as a result of
This garbage cleaning tip section mentions:
To bring the repo size down the bare minimum, you need both the following commands (neither command by itself does the whole job).
Also Note the lowercase “
a” on the “
repack“, which says you want to blindly discard unreachable objects instead of keeping them as loose objects.
git repack -adf # kills in-pack garbage git prune # kills loose garbage
So try again the
git count-objects -v -H after applying both commands.
Looking at the
git repack man page, jthill adds in the comments:
I prefer the big-
Then any unreachable objects in a previous pack become loose, unpacked objects, instead of being left in the old pack.”
Linus Torvalds argues that
--aggressiveis much overused — so much so he suggested yanking the documentation for it.
That means a more efficient combination might be:
git repack -Ad # kills in-pack garbage git prune # kills loose garbage