= gerrit gc

== NAME
gerrit gc - Run the Git garbage collection.

== SYNOPSIS
[verse]
--
_ssh_ -p <port> <host> _gerrit gc_
  [--all]
  [--show-progress]
  [--aggressive]
  <NAME> ...
--

== DESCRIPTION
Runs the Git garbage collection for the specified projects.

A Gerrit system administrator can define the default parameters that
should be used for running the garbage collection in the user global
Git configuration file of the system user that runs the Gerrit
server.

Since the user global Git configuration file is overlaid with the Git
configuration on repository level it is possible to specify
repository specific parameters for the garbage collection in the Git
repository configuration of every project.

== ACCESS
Caller must be a member of the privileged 'Administrators' group,
or have been granted the
link:access-control.html#capability_runGC[Run Garbage Collection]
global capability.

== SCRIPTING
This command is intended to be used in scripts.

== OPTIONS
<NAME>::
	Name of the projects for which the Git garbage collection should be run.

--all::
	If specified the Git garbage collection is run for all projects
	sequentially.

--show-progress::
	If specified progress information is shown.

--aggressive::
	If an aggressive garbage collection should be done.

== EXAMPLES

Run the Git garbage collection for the projects 'myProject' and
'yourProject':
----
$ ssh -p 29418 review.example.com gerrit gc myProject yourProject
collecting garbage for "myProject":
...
done.

collecting garbage for "yourProject":
...
done.
----

Run the Git garbage collection for all projects:
----
$ ssh -p 29418 review.example.com gerrit gc --all
----

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
