= 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
---------
