table of contents
other versions
- wheezy 1:1.7.10.4-1+wheezy3
- wheezy-backports 1:1.9.1-1~bpo70+2
- jessie 1:2.1.4-2.1+deb8u2
- jessie-backports 1:2.11.0-3~bpo8+1
- testing 1:2.11.0-3
- unstable 1:2.11.0-4
- experimental 1:2.13.1+next.20170610-1
GIT-GC(1) | Git Manual | GIT-GC(1) |
NAME¶
git-gc - Cleanup unnecessary files and optimize the local repositorySYNOPSIS¶
git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]
DESCRIPTION¶
Runs a number of housekeeping tasks within the current repository, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add.$ git config --global gc.auto 0
OPTIONS¶
--aggressiveUsually git gc runs very quickly while
providing good disk space utilization and performance. This option will cause
git gc to more aggressively optimize the repository at the expense of
taking much more time. The effects of this optimization are persistent, so
this option only needs to be used occasionally; every few hundred changesets
or so.
--auto
With this option, git gc checks whether
any housekeeping is required; if not, it exits without performing any work.
Some git commands run git gc --auto after performing operations that could
create many loose objects.
Housekeeping is required if there are too many loose objects or too many packs
in the repository. If the number of loose objects exceeds the value of the
gc.auto configuration variable, then all loose objects are combined into a
single pack using git repack -d -l. Setting the value of gc.auto to 0 disables
automatic packing of loose objects.
If the number of packs exceeds the value of gc.autopacklimit, then existing
packs (except those marked with a .keep file) are consolidated into a single
pack by using the -A option of git repack. Setting gc.autopacklimit to
0 disables automatic consolidation of packs.
--prune=<date>
Prune loose objects older than date (default
is 2 weeks ago, overridable by the config variable gc.pruneExpire). This
option is on by default.
--no-prune
Do not prune any loose objects.
--quiet
Suppress all progress reports.
CONFIGURATION¶
The optional configuration variable gc.reflogExpire can be set to indicate how long historical entries within each branch’s reflog should remain available in this repository. The setting is expressed as a length of time, for example 90 days or 3 months. It defaults to 90 days.[gc "refs/remotes/*"] reflogExpire = never reflogexpireUnreachable = 3 days
NOTES¶
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 git filter-branch in refs/original/, or reflogs (which may reference commits in branches that were later amended or rewound).HOOKS¶
The git gc --auto command will run the pre-auto-gc hook. See githooks(5) for more information.SEE ALSO¶
git-prune(1) git-reflog(1) git-repack(1) git-rerere(1)GIT¶
Part of the git(1) suite03/19/2016 | Git 1.7.10.4 |