| = 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-copy-approvals.html[gerrit copy-approvals]:: | 
 | 	Copy all inferred approvals labels to the latest patch-set. | 
 |  | 
 | link:cmd-check-project-access.html[gerrit check-project-access]:: | 
 | 	Check if user(s) can read non-config refs of a project | 
 |  | 
 | 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-set-topic.html[gerrit set-topic]:: | 
 | 	Set the topic for 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-convert-ref-storage.html[gerrit convert-ref-storage]:: | 
 | 	Convert ref storage to reftable (experimental). | 
 |  | 
 | 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-migrate-externalids-to-insensitive.html[gerrit migrate-externalids-to-insensitive]:: | 
 | 	Migrate external-ids to case insensitive. | 
 |  | 
 | 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-sequence-set.html[gerrit sequence set]:: | 
 |         Set new sequence value. | 
 |  | 
 | link:cmd-sequence-show.html[gerrit sequence show]:: | 
 | 	Display current sequence value. | 
 |  | 
 | 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. | 
 |  | 
 | [[deadline]] | 
 | === Setting a deadline | 
 |  | 
 | When invoking an SSH command it's possible that the client sets a deadline | 
 | after which the request should be aborted. To do this the | 
 | `--deadline <deadline>` option must be set on the request. Values must be | 
 | specified using standard time unit abbreviations ('ms', 'sec', 'min', etc.). | 
 |  | 
 | ---- | 
 |   $ ssh -p 29418 review.example.com gerrit create-project --deadline 5m foo/bar | 
 | ---- | 
 |  | 
 | GERRIT | 
 | ------ | 
 | Part of link:index.html[Gerrit Code Review] | 
 |  | 
 | SEARCHBOX | 
 | --------- |