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 john.doe@review.example.com:bin/gerrit-cherry-pick ~/bin/
  $ scp -p -P 29418 john.doe@review.example.com:hooks/commit-msg .git/hooks/

  $ curl -Lo ~/bin/gerrit-cherry-pick http://review.example.com/tools/bin/gerrit-cherry-pick
  $ curl -Lo .git/hooks/commit-msg 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

link:cmd-ban-commit.html[gerrit ban-commit]::
	Bans a commit from a project's repository.

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

link:cmd-ls-members.html[gerrit ls-members]::
	List the membership of a group visible to the caller.

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

link:cmd-rename-group.html[gerrit rename-group]::
	Rename an account group.

link:cmd-set-reviewers.html[gerrit set-reviewers]::
        Add or remove reviewers on a change.

link:cmd-query.html[gerrit query]::
	Query the change database.

'gerrit receive-pack'::
	'Deprecated alias for `git receive-pack`.'

link:cmd-review.html[gerrit review]::
	Verify, approve and/or submit a patch set from the command line.

link:cmd-stream-events.html[gerrit stream-events]::
	Monitor events occurring in real time.

link:cmd-version.html[gerrit version]::
	Show the currently executing version of Gerrit.

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

[[admin_commands]]Administrator Commands
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

link:cmd-create-account.html[gerrit create-account]::
	Create a new user account.

link:cmd-set-account.html[gerrit set-account]::
	Change an account's settings.

link:cmd-create-group.html[gerrit create-group]::
	Create a new account group.

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

link:cmd-set-project.html[gerrit set-project]::
    Change a project's settings.

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

link:cmd-gc.html[gerrit gc]::
	Run the Git garbage collection.

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

link:cmd-set-members.html[gerrit set-members]::
	Set group members.

link:cmd-set-project-parent.html[gerrit set-project-parent]::
	Change the project permissions are inherited from.

link:cmd-ls-user-refs.html[gerrit ls-user-refs]::
	Lists refs visible for a specified user.

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-plugin-install.html[gerrit plugin add]::
    Alias for 'gerrit plugin install'.

link:cmd-plugin-enable.html[gerrit plugin enable]::
    Enable plugins.

link:cmd-plugin-install.html[gerrit plugin install]::
    Install/Add a plugin.

link:cmd-plugin-ls.html[gerrit plugin ls]::
    List the installed plugins.

link:cmd-plugin-reload.html[gerrit plugin reload]::
    Reload/Restart plugins.

link:cmd-plugin-remove.html[gerrit plugin remove]::
    Disable plugins.

link:cmd-plugin-remove.html[gerrit plugin rm]::
    Alias for 'gerrit plugin remove'.

link:cmd-test-submit-rule.html[gerrit test-submit rule]::
	Test prolog submit rules.

link:cmd-test-submit-type.html[gerrit test-submit type]::
	Test prolog submit type.

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

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

link:cmd-suexec.html[suexec]::
	Execute a command as any registered user account.

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