question: what does "garbage" field in "git count-objects -v" represent? Is it broken?
- From
Daniele Sassoli <danielesassoli@gmail.com>
- Date
- Aug 28, 2025, 16:32 UTC
- Message-ID
- <CADR1ei4LFVoLhMyya+wx8dXBmrRNSNy6L5Ye_MJgL4kzgtVR_A@mail.gmail.com>
Hi All,
When reading the output `git count-objects -v` there is a `garbage` field. At first I thought this would highlight objects that are considered "garbage", i.e. could be garbage collected. However, I kept noticing that this wasn't the case, despite my repository having plenty of dangling objects (that where removed once I run `git gc --prune=now`), garbage kept being 0.
I then turned to reading the docs, which state: garbage: the number of files in the object database that are neither valid loose objects nor valid packs
I don't think I've ever seen a definition of an invalid object? I tried adding random chars to an object, effectively corrupting the repository(which `git fsck` correctly picked up), but count-objects kept returning 0 at the garbage field.
The only way I've been able to get count-objects to report some garbage is by creating files in the packs directory (or in any of the sub-directories of `objects` folder) with random names, like "test", or sometimes I've seen it report the existence of lock files or even preserved files.
So my question is, am I fundamentally misunderstanding what garbage means, are the docs simply unclear or is the functionality not working as expected?
Thanks for taking the time to read this and respond. Dani