|  | = gerrit create-project | 
|  |  | 
|  | == NAME | 
|  | gerrit create-project - Create a new hosted project | 
|  |  | 
|  | == SYNOPSIS | 
|  | -- | 
|  | 'ssh' -p <port> <host> 'gerrit create-project' | 
|  | [--owner <GROUP> ... | -o <GROUP> ...] | 
|  | [--parent <NAME> | -p <NAME> ] | 
|  | [--suggest-parents | -S ] | 
|  | [--permissions-only] | 
|  | [--description <DESC> | -d <DESC>] | 
|  | [--submit-type <TYPE> | -t <TYPE>] | 
|  | [--use-contributor-agreements | --ca] | 
|  | [--use-signed-off-by | --so] | 
|  | [--use-content-merge] | 
|  | [--create-new-change-for-all-not-in-target] | 
|  | [--require-change-id | --id] | 
|  | [[--branch <REF> | -b <REF>] ...] | 
|  | [--empty-commit] | 
|  | [--max-object-size-limit <N>] | 
|  | [--plugin-config <PARAM> ...] | 
|  | { <NAME> } | 
|  | -- | 
|  |  | 
|  | == DESCRIPTION | 
|  | Creates a new bare Git repository under `gerrit.basePath`, using | 
|  | the project name supplied.  The newly created repository is empty | 
|  | (has no commits), but is registered in the Gerrit database so that | 
|  | the initial commit may be uploaded for review, or initial content | 
|  | can be pushed directly into a branch. | 
|  |  | 
|  | If replication is enabled, this command also connects to each of | 
|  | the configured remote systems over SSH and uses command line git | 
|  | on the remote system to create the empty repository. | 
|  |  | 
|  |  | 
|  | == ACCESS | 
|  | Caller must be a member of the privileged 'Administrators' group, | 
|  | or have been granted | 
|  | link:access-control.html#capability_createProject[the 'Create Project' global capability]. | 
|  |  | 
|  | == SCRIPTING | 
|  | This command is intended to be used in scripts. | 
|  |  | 
|  | == OPTIONS | 
|  | <NAME>:: | 
|  | Required; name of the new project to create.  If name ends | 
|  | with `.git` the suffix will be automatically removed. | 
|  |  | 
|  | --branch:: | 
|  | -b:: | 
|  | Name of the initial branch(es) in the newly created project. | 
|  | Several branches can be specified on the command line. | 
|  | If several branches are specified then the first one becomes HEAD | 
|  | of the project. If none branches are specified then default value | 
|  | ('master') is used. | 
|  |  | 
|  | --owner:: | 
|  | -o:: | 
|  | Name of the group(s) which will initially own this repository. | 
|  | The specified group(s) must already be defined within Gerrit. | 
|  | Several groups can be specified on the command line. | 
|  | + | 
|  | Defaults to what is specified by `repository.*.ownerGroup` | 
|  | in gerrit.config. | 
|  |  | 
|  | --parent:: | 
|  | -p:: | 
|  | Name of the parent project to inherit access rights | 
|  | through. If not specified, the parent is set to the default | 
|  | project `All-Projects`. | 
|  |  | 
|  | --suggest-parents:: | 
|  | -S:: | 
|  | Suggest parent candidates. This option cannot be used with | 
|  | other arguments. Print out a list of projects that are | 
|  | already parents to other projects, thus it can help the user | 
|  | find a suitable parent for the new project. | 
|  |  | 
|  | --permissions-only:: | 
|  | Create the project only to serve as a parent for other | 
|  | projects.  The new project's Git repository will be | 
|  | initialized to have 'HEAD' point to 'refs/meta/config'. | 
|  |  | 
|  | --description:: | 
|  | -d:: | 
|  | Initial description of the project.  If not specified, | 
|  | no description is stored. | 
|  | + | 
|  | Description values containing spaces should be quoted in single quotes | 
|  | (').  This most likely requires double quoting the value, for example | 
|  | `--description "'A description string'"`. | 
|  |  | 
|  | --submit-type:: | 
|  | -t:: | 
|  | Action used by Gerrit to submit an approved change to its | 
|  | destination branch.  Supported options are: | 
|  | + | 
|  | * FAST_FORWARD_ONLY: produces a strictly linear history. | 
|  | * MERGE_IF_NECESSARY: create a merge commit when required. | 
|  | * REBASE_IF_NECESSARY: rebase the commit when required. | 
|  | * MERGE_ALWAYS: always create a merge commit. | 
|  | * CHERRY_PICK: always cherry-pick the commit. | 
|  |  | 
|  | + | 
|  | Defaults to MERGE_IF_NECESSARY unless | 
|  | link:config-gerrit.html#repository.name.defaultSubmitType[ | 
|  | repository.<name>.defaultSubmitType] is set to a different value. | 
|  | For more details see link:project-configuration.html#submit_type[ | 
|  | Submit Types]. | 
|  |  | 
|  | --use-content-merge:: | 
|  | If enabled, Gerrit will try to perform a 3-way merge of text | 
|  | file content when a file has been modified by both the | 
|  | destination branch and the change being submitted.  This | 
|  | option only takes effect if submit type is not | 
|  | FAST_FORWARD_ONLY.  Disabled by default. | 
|  |  | 
|  | --use-contributor-agreements:: | 
|  | --ca:: | 
|  | If enabled, authors must complete a contributor agreement | 
|  | on the site before pushing any commits or changes to this | 
|  | project.  Disabled by default. | 
|  |  | 
|  | --use-signed-off-by:: | 
|  | --so: | 
|  | If enabled, each change must contain a Signed-off-by line | 
|  | from either the author or the uploader in the commit message. | 
|  | Disabled by default. | 
|  |  | 
|  | --create-new-change-for-all-not-in-target:: | 
|  | --ncfa: | 
|  | If enabled, a new change is created for every commit that is not in | 
|  | the target branch. If the pushed commit is a merge commit, this flag is | 
|  | ignored for that push. To avoid accidental creation of a large number | 
|  | of open changes, this option also does not accept merge commits in the | 
|  | commit chain. | 
|  | Disabled by default. | 
|  |  | 
|  | --require-change-id:: | 
|  | --id:: | 
|  | Require a valid link:user-changeid.html[Change-Id] footer | 
|  | in any commit uploaded for review. This does not apply to | 
|  | commits pushed directly to a branch or tag. | 
|  |  | 
|  | --empty-commit:: | 
|  | Creates an initial empty commit for the Git repository of the | 
|  | project that is newly created. | 
|  |  | 
|  | --max-object-size-limit:: | 
|  | Define maximum Git object size for this project. Pushes containing an | 
|  | object larger than this limit will be rejected. This can be used to | 
|  | further limit the global | 
|  | link:config-gerrit.html#receive.maxObjectSizeLimit[receive.maxObjectSizeLimit] | 
|  | and cannot be used to increase that globally set limit. | 
|  | + | 
|  | Common unit suffixes of 'k', 'm', or 'g' are supported. | 
|  |  | 
|  | --plugin-config:: | 
|  | A plugin configuration parameter that should be set for this | 
|  | project. The plugin configuration parameter must be specified in | 
|  | the format '<plugin-name>.<parameter-name>=<value>'. Only | 
|  | parameters that are explicitly declared by a plugin can be set. | 
|  | Multiple `--plugin-config` options can be specified to set multiple | 
|  | plugin parameters. | 
|  |  | 
|  |  | 
|  | == EXAMPLES | 
|  | Create a new project called `tools/gerrit`: | 
|  |  | 
|  | ==== | 
|  | $ ssh -p 29418 review.example.com gerrit create-project tools/gerrit.git | 
|  | ==== | 
|  |  | 
|  | Create a new project with a description: | 
|  |  | 
|  | ==== | 
|  | $ ssh -p 29418 review.example.com gerrit create-project tool.git --description "'Tools used by build system'" | 
|  | ==== | 
|  |  | 
|  | Note that it is necessary to quote the description twice.  The local | 
|  | shell needs double quotes around the value to ensure the single quotes | 
|  | are passed through SSH as-is to the remote Gerrit server, which uses | 
|  | the single quotes to delimit the value. | 
|  |  | 
|  | == REPLICATION | 
|  | If the replication plugin is installed, the plugin will attempt to | 
|  | perform remote repository creation by a Bourne shell script: | 
|  |  | 
|  | ==== | 
|  | mkdir -p '/base/project.git' && cd '/base/project.git' && git init --bare && git update-ref HEAD refs/heads/master | 
|  | ==== | 
|  |  | 
|  | For this to work successfully the remote system must be able to run | 
|  | arbitrary shell scripts, and must have `git` in the user's PATH | 
|  | environment variable.  Administrators could also run this command line | 
|  | by hand to establish a new empty repository. | 
|  |  | 
|  | A custom extension or plugin may also be developed to implement the | 
|  | NewProjectCreatedListener extension point and handle custom logic | 
|  | for remote repository creation. | 
|  |  | 
|  | == SEE ALSO | 
|  |  | 
|  | * link:project-configuration.html[Project Configuration] | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |