Gerrit Code Review - Command Line Tools
=======================================

Client
------

Client commands and hooks can be downloaded via scp, wget or curl
from Gerrit's daemon, and then executed on the client system.

To download a client command or hook, use scp or an http client:

  $ scp -p -P 29418 review.example.com:bin/gerrit-cherry-pick ~/bin/
  $ scp -p -P 29418 review.example.com:hooks/commit-msg .git/hooks/

  $ curl http://review.example.com/tools/bin/gerrit-cherry-pick
  $ curl http://review.example.com/tools/hooks/commit-msg

For more details on how to determine the correct SSH port number,
see link:user-upload.html#test_ssh[Testing Your SSH Connection].

[[client_commands]]Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~

link:cmd-cherry-pick.html[gerrit-cherry-pick]::
  Download and cherry-pick one or more changes (commits).

[[client_hooks]]Hooks
~~~~~~~~~~~~~~~~~~~~~

Client hooks can be installed into a local Git repository, improving
the developer experience when working with a Gerrit Code Review
server.

link:cmd-hook-commit-msg.html[commit-msg]::
  Automatically generate `Change-Id: ` tags in commit messages.


Server
------

Aside from the standard Git server side actions, Gerrit supports
several other commands over its internal SSH daemon.  As Gerrit does
not provide an interactive shell, the commands must be triggered
from an ssh client, for example:

  $ ssh -p 29418 review.example.com gerrit ls-projects

For more details on how to determine the correct SSH port number,
see link:user-upload.html#test_ssh[Testing Your SSH Connection].

[[user_commands]]User Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

git upload-pack::
	Standard Git server side command for client side `git fetch`.

link:cmd-receive-pack.html[git receive-pack]::
	Standard Git server side command for client side `git push`.
+
Also implements the magic associated with uploading commits for
review.  See link:user-upload.html#push_create[Creating Changes].

link:cmd-approve.html[gerrit approve]::
	Approve a patch set from the command line.

link:cmd-ls-projects.html[gerrit ls-projects]::
	List projects visible to the caller.

gerrit receive-pack::
	Legacy alias for `git receive-pack`.

[[admin_commands]]Adminstrator Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

link:cmd-create-project.html[gerrit create-project]::
	Create a new project and associated Git repository.

link:cmd-flush-caches.html[gerrit flush-caches]::
	Flush some/all server caches from memory.

link:cmd-gsql.html[gerrit gsql]::
	Administrative interface to active database.

link:cmd-show-caches.html[gerrit show-caches]::
	Display current cache statistics.

link:cmd-show-connections.html[gerrit show-connections]::
	Display active client SSH connections.

link:cmd-show-queue.html[gerrit show-queue]::
	Display the background work queues, including replication.

link:cmd-replicate.html[gerrit replicate]::
	Manually trigger replication, to recover a node.

link:cmd-kill.html[kill]::
	Kills a scheduled or running task.

link:cmd-show-queue.html[ps]::
	Alias for 'gerrit show-queue'.

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