2016-01-11 11:11:22 -05:00
# Housekeeping
2019-10-07 14:06:24 -04:00
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/issues/3041) in GitLab 8.4.
2016-01-11 11:11:22 -05:00
2016-10-27 08:59:52 -04:00
## Automatic housekeeping
GitLab automatically runs `git gc` and `git repack` on repositories
after Git pushes. If needed you can change how often this happens, or
to turn it off, go to **Admin area > Settings**
(`/admin/application_settings`).
## Manual housekeeping
2016-01-11 11:11:22 -05:00
2016-12-30 01:58:22 -05:00
The housekeeping function will run a `repack` or `gc` depending on the
"Automatic Git repository housekeeping" settings configured in **Admin area > Settings**
2016-01-11 11:11:22 -05:00
2016-12-30 01:58:22 -05:00
For example in the following scenario a `git repack -d` will be executed:
2018-11-13 01:07:16 -05:00
- Project: pushes since gc counter (`pushes_since_gc`) = `10`
- Git GC period = `200`
- Full repack period = `50`
2016-12-30 01:58:22 -05:00
When the `pushes_since_gc` value is 50 a `repack -A -d --pack-kept-objects` will run, similarly when
the `pushes_since_gc` value is 200 a `git gc` will be run.
2019-10-07 14:06:24 -04:00
- `git gc` ([man page](https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-gc.html)) runs a number of housekeeping tasks,
2018-11-13 01:07:16 -05:00
such as compressing filerevisions (to reduce disk space and increase performance)
and removing unreachable objects which may have been created from prior invocations of
`git add` .
2019-10-07 14:06:24 -04:00
- `git repack` ([man page](https://mirrors.edge.kernel.org/pub/software/scm/git/docs/git-repack.html)) re-organize existing packs into a single, more efficient pack.
2016-01-11 11:11:22 -05:00
2019-04-10 02:07:03 -04:00
You can find this option under your project's **Settings > General > Advanced** .
2016-01-11 11:11:22 -05:00
2016-01-21 17:10:47 -05:00
![Housekeeping settings ](img/housekeeping_settings.png )