Create a project

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

You can create a project in many ways in GitLab.

Create a blank project

To create a blank project:

  1. On the left sidebar, at the top, select Create new () and New project/repository.
  2. Select Create blank project.
  3. Enter the project details:
    • In the Project name field, enter the name of your project. See the limitations on project names.
    • In the Project slug field, enter the path to your project. The GitLab instance uses the slug as the URL path to the project. To change the slug, first enter the project name, then change the slug.
    • In the Project deployment target (optional) field, select your project’s deployment target. This information helps GitLab better understand its users and their deployment requirements.
    • To modify the project’s viewing and access rights for users, change the Visibility Level.
    • To create README file so that the Git repository is initialized, has a default branch, and can be cloned, select Initialize repository with a README.
    • To analyze the source code in the project for known security vulnerabilities, select Enable Static Application Security Testing (SAST).
  4. Select Create project.

Create a project from a built-in template

A built-in project template populates a new project with files to get you started. Built-in templates are sourced from the following groups:

Anyone can contribute a built-in template.

To create a project from a built-in template:

  1. On the left sidebar, at the top, select Create new () and New project/repository.
  2. Select Create from template.
  3. Select the Built-in tab.
  4. From the list of templates:
    • To view a preview of the template, select Preview.
    • To use a template for the project, select Use template.
  5. Enter the project details:
    • In the Project name field, enter the name of your project. The name must start with a lowercase or uppercase letter (a-zA-Z), digit (0-9), emoji, or underscore (_). It can also contain dots (.), pluses (+), dashes (-), or spaces.
    • In the Project slug field, enter the path to your project. The GitLab instance uses the slug as the URL path to the project. To change the slug, first enter the project name, then change the slug.
    • In the Project description (optional) field, enter the description of your project’s dashboard. The description is limited to 500 characters.
    • To modify the project’s viewing and access rights for users, change the Visibility Level.
  6. Select Create project.
note
A user who creates a project from a template or by import is displayed as the author of the imported objects (such as issues and merge requests), which keep the original timestamp from the template or import. Imported objects are labeled as By <username> on <timestamp> (imported from GitLab). For this reason, the creation date of imported objects can be older than the creation date of the user’s account. This can lead to objects appearing to have been created by a user before they even had an account.

Create a project from a custom template

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
History

Custom project templates are available at:

  1. On the left sidebar, at the top, select Create new () and New project/repository.
  2. Select Create from template.
  3. Select the Instance or Group tab.
  4. From the list of templates:
    • To view a preview of the template, select Preview.
    • To use a template for the project, select Use template.
  5. Enter the project details:
    • In the Project name field, enter the name of your project. The name must start with a lowercase or uppercase letter (a-zA-Z), digit (0-9), emoji, or underscore (_). It can also contain dots (.), pluses (+), dashes (-), or spaces.
    • In the Project slug field, enter the path to your project. The GitLab instance uses the slug as the URL path to the project. To change the slug, first enter the project name, then change the slug.
    • The description of your project’s dashboard in the Project description (optional) field. The description is limited to 500 characters.
    • To modify the project’s viewing and access rights for users, change the Visibility Level.
  6. Select Create project.

Create a project from the HIPAA Audit Protocol template

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
History

The HIPAA Audit Protocol template contains issues for audit inquiries in the HIPAA Audit Protocol published by the U.S Department of Health and Human Services.

To create a project from the HIPAA Audit Protocol template:

  1. On the left sidebar, at the top, select Create new () and New project/repository.
  2. Select Create from template.
  3. Select the Built-in tab.
  4. Locate the HIPAA Audit Protocol template:
    • To view a preview of the template, select Preview.
    • To use the template for the project, select Use template.
  5. Enter the project details:
    • In the Project name field, enter the name of your project. The name must start with a lowercase or uppercase letter (a-zA-Z), digit (0-9), emoji, or underscore (_). It can also contain dots (.), pluses (+), dashes (-), or spaces.
    • In the Project slug field, enter the path to your project. The GitLab instance uses the slug as the URL path to the project. To change the slug, first enter the project name, then change the slug.
    • In the Project description (optional) field, enter the description of your project’s dashboard. The description is limited to 500 characters.
    • To modify the project’s viewing and access rights for users, change the Visibility Level.
  6. Select Create project.

Create a new project with Git push

History

Use git push to push a local project repository to GitLab. After you push a repository, GitLab creates your project in your chosen namespace.

You cannot use git push to create projects with project paths that:

  • Have previously been used.
  • Have been renamed.

Previously used project paths have a redirect. The redirect causes push attempts to redirect requests to the renamed project location, instead of creating a new project. To create a new project for a previously used or renamed project, use the UI or the Projects API.

Prerequisites:

  • To push with SSH, you must have an SSH key that is added to your GitLab account.
  • You must have permission to add new projects to a namespace. To check if you have permission:

    1. On the left sidebar, select Search or go to and find your group.
    2. In the upper-right corner, confirm that New project is visible. Contact your GitLab administrator if you require permission.

To push your repository and create a project:

  1. Push with SSH or HTTPS:
    • To push with SSH:

      # Use this version if your project uses the standard port 22
      $ git push --set-upstream git@gitlab.example.com:namespace/myproject.git main
      
      # Use this version if your project requires a non-standard port number
      $ git push --set-upstream ssh://git@gitlab.example.com:00/namespace/myproject.git main
      
    • To push with HTTPS:

      git push --set-upstream https://gitlab.example.com/namespace/myproject.git master
      
    • For gitlab.example.com, use the domain name of the machine that hosts your Git repository.
    • For namespace, use the name of your namespace.
    • For myproject, use the name of your project.
    • If specifying a port, change 00 to your project’s required port number.
    • Optional. To export existing repository tags, append the --tags flag to your git push command.
  2. Optional. To configure the remote:

    git remote add origin https://gitlab.example.com/namespace/myproject.git
    

When the push completes, GitLab displays the message:

remote: The private project namespace/myproject was created.

To view your new project, go to https://gitlab.example.com/namespace/myproject. Your project’s visibility is set to Private by default. To change project visibility, adjust your project’s settings.

Create a project that uses SHA-256 hashing

Status: Experiment
History
On self-managed GitLab, by default this feature is not available. To make it available, an administrator can enable the feature flag named support_sha256_repositories.

You can select SHA-256 hashing for a project only when you create the project.

To create a project that uses SHA-256 hashing:

  1. On the left sidebar, at the top, select Create new () and New project/repository.
  2. Select Create blank project and fill out the project’s details as usual. For more information on project details, see Create a blank project.
  3. In the Project Configuration area, click on Experimental settings to expand the accordion.
  4. Select Use SHA-256 as the repository hashing algorithm.
  5. Select Create project.
caution
Git does not support migrating to SHA-256 later, or migrating back to SHA-1.

Why SHA-256?

By default, Git uses the SHA-1 hashing algorithm to generate a 40-character ID for objects such as commits, blobs, trees, and tags. The SHA-1 algorithm was proven to be insecure when Google was able to produce a hash collision. The Git project is not yet impacted by these kinds of attacks because of the way Git stores objects. However, it is only a matter of time until new attacks on SHA-1 are found that impact Git.

In SHA-256 repositories, the algorithm generates a 64-character ID instead of a 40-character ID. The Git project determined that the SHA-256 feature is safe to use when they removed the experimental label.

Federal regulations, such as NIST and CISA guidelines (which FedRamp enforces), have set a due date in 2030 to stop using SHA-1 and encourage agencies using SHA-1 to move away from it sooner, if possible.