= 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-apropos.html[gerrit apropos]::
	Search Gerrit documentation index.

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

link:cmd-create-branch.html[gerrit create-branch]::
	Create a new project branch.

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-query.html[gerrit query]::
	Query the change search index.

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

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

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

link:cmd-set-head.html[gerrit set-head]::
	Change the HEAD reference of a project.

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

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

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

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.

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

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

[[admin_commands]]
=== Administrator Commands

link:cmd-close-connection.html[gerrit close-connection]::
	Close the specified SSH connection.

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

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-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-index-activate.html[gerrit index activate]::
	Activate the latest index version available.

link:cmd-index-start.html[gerrit index start]::
	Start the online indexer.

link:cmd-index-changes.html[gerrit index changes]::
	Index one or more changes.

link:cmd-index-changes-in-project.html[gerrit index changes-in-project]::
	Index all the changes in one or more projects.

link:cmd-logging-ls-level.html[gerrit logging ls-level]::
	List loggers and their logging level.

link:cmd-logging-set-level.html[gerrit logging set-level]::
	Set the logging level of loggers.

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

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-reload-config.html[gerrit reload-config]::
	Apply an updated gerrit.config.

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

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

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

[[trace]]
=== Trace

For executing SSH commands tracing can be enabled by setting the
`--trace` and `--trace-id <trace-id>` options. It is recommended to use
the ID of the issue that is being investigated as trace ID.

----
  $ ssh -p 29418 review.example.com gerrit create-project --trace --trace-id issue/123 foo/bar
----

It is also possible to omit the trace ID and get a unique trace ID
generated.

----
  $ ssh -p 29418 review.example.com gerrit create-project --trace foo/bar
----

Enabling tracing results in additional logs with debug information that
are written to the `error_log`. All logs that correspond to the traced
request are associated with the trace ID. The trace ID is printed to
the stderr command output:

----
  TRACE_ID: 1534174322774-7edf2a7b
----

Given the trace ID an administrator can find the corresponding logs and
investigate issues more easily.

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

SEARCHBOX
---------
