= Gerrit Code Review - Project Configuration [[project-creation]] == Project Creation There are several ways to create a new project in Gerrit: - in the Web UI under 'Projects' > 'Create Project' - via the link:rest-api-projects.html#create-project[Create Project] REST endpoint - via the link:cmd-create-project.html[create-project] SSH command To be able to create new projects the global capability link:access-control.html#capability_createProject[Create Project] must be granted. In addition, projects can be created link:#manual_project_creation[ manually]. [[manual_project_creation]] === Manual Project Creation . Create a Git repository under `gerrit.basePath`: + ---- git --git-dir=$base_path/new/project.git init ---- + [TIP] By tradition the repository directory name should have a `.git` suffix. + To also make this repository available over the anonymous git:// protocol, don't forget to create a `git-daemon-export-ok` file: + ---- touch $base_path/new/project.git/git-daemon-export-ok ---- . Register Project + Either restart the server, or flush the `project_list` cache: + ---- ssh -p 29418 localhost gerrit flush-caches --cache project_list ---- [[project_options]] == Project Options See details at link:config-project-config.html#project-section[project section]. [[branch-admin]] == Branch Administration [[branch-creation]] === Branch Creation There are several ways to create a new branch in a project: - in the Web UI under 'Projects' > 'List' > > 'Branches' - via the link:rest-api-projects.html#create-branch[Create Branch] REST endpoint - via the link:cmd-create-branch.html[create-branch] SSH command - by using a git client to push a commit to a non-existing branch To be able to create new branches the user must have the link:access-control.html#category_create[Create Reference] access right. When using the Web UI, the REST endpoint or the SSH command it is only possible to create branches on commits that already exist in the repository. If a branch name does not start with `refs/` it is automatically prefixed with `refs/heads/`. The starting revision for a new branch can be any valid SHA-1 expression, as long as it resolves to a commit. Abbreviated SHA-1s are not supported. [[branch-deletion]] === Branch Deletion There are several ways to delete a branch: - in the Web UI under 'Projects' > 'List' > > 'Branches' - via the link:rest-api-projects.html#delete-branch[Delete Branch] REST endpoint - by using a git client + ---- $ git push origin --delete refs/heads/ ---- + another method, by force pushing nothing to an existing branch: + ---- $ git push --force origin :refs/heads/ ---- To be able to delete branches, the user must have the link:access-control.html#category_delete[Delete Reference] or the link:access-control.html#category_push[Push] access right with the `force` option. [[default-branch]] === Default Branch The default branch of a remote repository is defined by its `HEAD`. For convenience reasons, when the repository is cloned Git creates a local branch for this default branch and checks it out. Project owners can set `HEAD` - in the Web UI under 'Projects' > 'List' > > 'Branches' or - via the link:rest-api-projects.html#set-head[Set HEAD] REST endpoint GERRIT ------ Part of link:index.html[Gerrit Code Review] SEARCHBOX ---------