| = 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' > <project> > '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' > <project> > '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/<branch-to-delete> |
| ---- |
| + |
| another method, by force pushing nothing to an existing branch: |
| + |
| ---- |
| $ git push --force origin :refs/heads/<branch-to-delete> |
| ---- |
| |
| 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`. |
| The default branch is selected from the initial branches of the newly created project, |
| or set to link:config-gerrit.html#gerrit.defaultBranch[host-level default], |
| if the project was created with empty branches. |
| 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' > <project> > '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 |
| --------- |