path: root/Documentation/git-gc.txt
diff options
authorJeff King <>2008-04-24 01:28:36 (GMT)
committerJunio C Hamano <>2008-04-25 04:50:19 (GMT)
commit3ffb58be0a779b47e1e4d3ea584ba301461a3a77 (patch)
tree7136b8c79ca5862f1f57118312e74f270be3f50b /Documentation/git-gc.txt
parentd6958a1a32814af69a7571daa45252018c61f969 (diff)
doc/git-gc: add a note about what is collected
It seems to be a FAQ that people try running git-gc, and then get puzzled about why the size of their .git directory didn't change. This note mentions the reasons why things might unexpectedly get kept. Signed-off-by: Jeff King <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/git-gc.txt')
1 files changed, 15 insertions, 0 deletions
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index d424a4e..b6b5ce1 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -104,6 +104,21 @@ The optional configuration variable 'gc.pruneExpire' controls how old
the unreferenced loose objects have to be before they are pruned. The
default is "2 weeks ago".
+git-gc tries very hard to be safe about the garbage it collects. In
+particular, it will keep not only objects referenced by your current set
+of branches and tags, but also objects referenced by the index, remote
+tracking branches, refs saved by linkgit:git-filter-branch[1] in
+refs/original/, or reflogs (which may references commits in branches
+that were later amended or rewound).
+If you are expecting some objects to be collected and they aren't, check
+all of those locations and decide whether it makes sense in your case to
+remove those references.
See Also