index.md 7.0 KB
Newer Older
M
Marcia Ramos 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# Projects

In GitLab, you can create projects for hosting
your codebase, use it as an issue tracker, collaborate on code, and continuously
build, test, and deploy your app with built-in GitLab CI/CD.

Your projects can be [available](../../public_access/public_access.md)
publicly, internally, or privately, at your choice. GitLab does not limit
the number of private projects you create.

## Project's features

When you create a project in GitLab, you'll have access to a large number of
[features](https://about.gitlab.com/features/):

**Issues and merge requests:**

- [Issue tracker](issues/index.md): Discuss implementations with your team within issues
  - [Issue Boards](issue_board.md): Organize and prioritize your workflow
20
  - [Multiple Issue Boards](https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards) (**Starter/Premium**): Allow your teams to create their own workflows (Issue Boards) for the same project
M
Marcia Ramos 已提交
21 22
- [Repositories](repository/index.md): Host your code in a fully
integrated platform
23 24
  - [Branches](repository/branches/index.md): use Git branching strategies to
  collaborate on code
M
Marcia Ramos 已提交
25 26 27 28
  - [Protected branches](protected_branches.md): Prevent collaborators
  from messing with history or pushing code without review
  - [Protected tags](protected_tags.md): Control over who has
  permission to create tags, and prevent accidental update or deletion
A
Achilleas Pipinellis 已提交
29
  - [Signing commits](gpg_signed_commits/index.md): use GPG to sign your commits
30
  - [Deploy tokens](deploy_tokens/index.md): Manage project-based deploy tokens that allow permanent access to the repository and Container Registry.
M
Marcia Ramos 已提交
31 32
- [Merge Requests](merge_requests/index.md): Apply your branching
strategy and get reviewed by your team
33
  - [Merge Request Approvals](https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html) (**Starter/Premium**): Ask for approval before
M
Marcia Ramos 已提交
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
  implementing a change
  - [Fix merge conflicts from the UI](merge_requests/resolve_conflicts.md):
  Your Git diff tool right from GitLab's UI
  - [Review Apps](../../ci/review_apps/index.md): Live preview the results
  of the changes proposed in a merge request in a per-branch basis
- [Labels](labels.md): Organize issues and merge requests by labels
- [Time Tracking](../../workflow/time_tracking.md): Track estimate time
and time spent on
  the conclusion of an issue or merge request
- [Milestones](milestones/index.md): Work towards a target date
- [Description templates](description_templates.md): Define context-specific
templates for issue and merge request description fields for your project
- [Slash commands (quick actions)](quick_actions.md): Textual shortcuts for
common actions on issues or merge requests

**GitLab CI/CD:**

- [GitLab CI/CD](../../ci/README.md): GitLab's built-in [Continuous Integration, Delivery, and Deployment](https://about.gitlab.com/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/) tool
  - [Container Registry](container_registry.md): Build and push Docker
  images out-of-the-box
  - [Auto Deploy](../../ci/autodeploy/index.md): Configure GitLab CI/CD
  to automatically set up your app's deployment
  - [Enable and disable GitLab CI](../../ci/enable_or_disable_ci.md)
  - [Pipelines](../../ci/pipelines.md#pipelines): Configure and visualize
  your GitLab CI/CD pipelines from the UI
     - [Scheduled Pipelines](pipelines/schedules.md): Schedule a pipeline
     to start at a chosen time
     - [Pipeline Graphs](../../ci/pipelines.md#pipeline-graphs): View your
     entire pipeline from the UI
     - [Job artifacts](pipelines/job_artifacts.md): Define,
     browse, and download job artifacts
     - [Pipeline settings](pipelines/settings.md): Set up Git strategy (choose the default way your repository is fetched from GitLab in a job),
     timeout (defines the maximum amount of time in minutes that a job is able run), custom path for `.gitlab-ci.yml`, test coverage parsing, pipeline's visibility, and much more
A
Achilleas Pipinellis 已提交
67
  - [GKE cluster integration](clusters/index.md): Connecting your GitLab project
T
Takuya Noguchi 已提交
68
    with Google Kubernetes Engine
M
Marcia Ramos 已提交
69 70 71 72 73 74 75 76
- [GitLab Pages](pages/index.md): Build, test, and deploy your static
website with GitLab Pages

**Other features:**

- [Cycle Analytics](cycle_analytics.md): Review your development lifecycle
- [Syntax highlighting](highlighting.md): An alternative to customize
your code blocks, overriding GitLab's default choice of language
77
- [Badges](badges.md): Badges for the project overview
M
Marcia Ramos 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

### Project's integrations

[Integrate your project](integrations/index.md) with Jira, Mattermost,
Kubernetes, Slack, and a lot more.

## New project

Learn how to [create a new project](../../gitlab-basics/create-project.md) in GitLab.

### Fork a project

You can [fork a project](../../gitlab-basics/fork-project.md) in order to:

- Collaborate on code by forking a project and creating a merge request
from your fork to the upstream project
- Fork a sample project to work on the top of that

96 97
## Project settings

98 99 100
Set the project's visibility level and  the access levels to its various pages
and perform actions like archiving, renaming or transferring a project.

101 102
Read through the documentation on [project settings](settings/index.md).

M
Marcia Ramos 已提交
103 104
## Import or export a project

105 106 107 108 109
- [Import a project](import/index.md) from:
  - [GitHub to GitLab](import/github.md)
  - [BitBucket to GitLab](import/bitbucket.md)
  - [Gitea to GitLab](import/gitea.md)
  - [FogBugz to GitLab](import/fogbugz.md)
M
Marcia Ramos 已提交
110 111 112
- [Export a project from GitLab](settings/import_export.md#exporting-a-project-and-its-data)
- [Importing and exporting projects between GitLab instances](settings/import_export.md)

113 114 115 116 117
## Project's members

Learn how to [add members to your projects](members/index.md).

### Leave a project
M
Marcia Ramos 已提交
118 119 120 121 122 123

**Leave project** will only display on the project's dashboard
when a project is part of a group (under a
[group namespace](../group/index.md#namespaces)).
If you choose to leave a project you will no longer be a project
member, therefore, unable to contribute.
124 125 126 127 128 129 130 131 132

## Redirects when changing repository paths

When a repository path changes, it is essential to smoothly transition from the
old location to the new one. GitLab provides two kinds of redirects: the web UI
and Git push/pull redirects.

Depending on the situation, different things apply.

133 134
When [renaming a user](../profile/index.md#changing-your-username),
[changing a group path](../group/index.md#changing-a-group-s-path) or [renaming a repository](settings/index.md#renaming-a-repository):
135 136 137 138 139 140 141 142 143

- Existing web URLs for the namespace and anything under it (e.g., projects) will
  redirect to the new URLs.
- Starting with GitLab 10.3, existing Git remote URLs for projects under the
  namespace will redirect to the new remote URL. Every time you push/pull to a
  repository that has changed its location, a warning message to update
  your remote will be displayed instead of rejecting your action.
  This means that any automation scripts, or Git clients will continue to
  work after a rename, making any transition a lot smoother.
144 145
- The redirects will be available as long as the original path is not claimed by
  another group, user or project.