gerrit gc
=========

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

SYNOPSIS
--------
--
'ssh' -p <port> <host> 'gerrit gc'
  [--all]
  [--show-progress]
  <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.

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