# Projects

> 原文：[https://docs.gitlab.com/ee/user/project/](https://docs.gitlab.com/ee/user/project/)

*   [Project features](#project-features)
    *   [Project integrations](#project-integrations)
*   [New project](#new-project)
    *   [Fork a project](#fork-a-project)
    *   [Star a project](#star-a-project)
    *   [Explore projects](#explore-projects)
*   [Project settings](#project-settings)
*   [Import or export a project](#import-or-export-a-project)
*   [Remove a project](#remove-a-project)
    *   [Delayed removal](#delayed-removal-premium)
*   [CI/CD for external repositories](#cicd-for-external-repositories-premium)
*   [Project members](#project-members)
*   [Project activity](#project-activity)
    *   [Leave a project](#leave-a-project)
*   [Project’s landing page](#projects-landing-page)
*   [Redirects when changing repository paths](#redirects-when-changing-repository-paths)
*   [Use your project as a Go package](#use-your-project-as-a-go-package)
    *   [Disable Go module features for private projects](#disable-go-module-features-for-private-projects)
    *   [Authenticate Go requests](#authenticate-go-requests)
    *   [Authenticate Git fetches](#authenticate-git-fetches)
*   [Access project page with project ID](#access-project-page-with-project-id)
*   [Project aliases](#project-aliases-premium-only)
*   [Project APIs](#project-apis)

# Projects[](#projects "Permalink")

在 GitLab 中，您可以创建用于托管代码库的项目，将其用作问题跟踪器，在代码上进行协作，并使用内置的 GitLab CI / CD 持续构建，测试和部署应用程序.

您可以[选择](../../public_access/public_access.html)公开，内部或私有[使用](../../public_access/public_access.html)您的项目. GitLab 不限制您创建的私人项目的数量.

## Project features[](#project-features "Permalink")

在 GitLab 中创建项目时，您将可以使用大量[功能](https://about.gitlab.com/features/) ：

**Repositories:**

*   [问题跟踪器](issues/index.html) ：与您的团队讨论问题内的实现
    *   [发行板](issue_board.html) ：组织工作流程并确定其优先级
    *   [多个发行板](issue_board.html#multiple-issue-boards) ：允许您的团队为同一项目创建自己的工作流（发行板）
*   [存储库](repository/index.html) ：将代码托管在完全集成的平台中
    *   [分支](repository/branches/index.html) ：使用 Git 分支策略在代码上进行协作
    *   [受保护的分支机构](protected_branches.html) ：防止协作者弄乱历史记录或在未经审查的情况下推送代码
    *   [受保护的标签](protected_tags.html) ：控制谁有权创建标签，并防止意外更新或删除
    *   [储存库镜​​像](repository/repository_mirroring.html)
    *   [签署提交](gpg_signed_commits/index.html) ：使用 GPG 签署您的提交
    *   [部署令牌](deploy_tokens/index.html) ：管理基于项目的部署令牌，这些令牌允许永久访问存储库和 Container Registry.
*   [Web IDE](web_ide/index.html)

**发出和合并请求：**

*   [问题跟踪器](issues/index.html) ：与您的团队讨论问题内的实现
    *   [发行板](issue_board.html) ：组织工作流程并确定其优先级
    *   [多个发行板](issue_board.html#multiple-issue-boards) ：允许您的团队为同一项目创建自己的工作流（发行板）
*   [合并请求](merge_requests/index.html) ：应用您的分支策略并获得团队的审查
    *   [合并请求批准](merge_requests/merge_request_approvals.html) ：实施更改之前[请求批准](merge_requests/merge_request_approvals.html)
    *   [修复 UI 中的合并冲突](merge_requests/resolve_conflicts.html) ：直接从 GitLab UI 中使用 Git diff 工具
    *   [审查应用程序](../../ci/review_apps/index.html) ：按分支实时预览合并请求中建议的更改结果
*   [标签](labels.html) ：按标签整理问题并合并请求
*   [时间跟踪](time_tracking.html) ：跟踪估计在完成问题或合并请求上花费的时间和时间
*   [里程碑](milestones/index.html) ：朝着目标日期迈进
*   [描述模板](description_templates.html) ：为项目定义特定于上下文的模板，并为您的项目合并请求描述字段
*   [斜杠命令（快速操作）](quick_actions.html) ：针对问题或合并请求的常见操作的文本快捷方式
*   [自动完成字符](autocomplete_characters.html) ：自动完成对用户，组，问题，合并请求和其他 GitLab 元素的引用.
*   [Web IDE](web_ide/index.html)

**亚搏体育 app CI / CD：**

*   [GitLab CI / CD](../../ci/README.html) ：GitLab 内置的[持续集成，交付和部署](https://about.gitlab.com/blog/2016/08/05/continuous-integration-delivery-and-deployment-with-gitlab/)工具
    *   [容器注册表](../packages/container_registry/index.html) ：开箱即用地构建和推送 Docker 映像
    *   [自动部署](../../topics/autodevops/stages.html#auto-deploy) ：配置 GitLab CI / CD 以自动设置应用程序的部署
    *   [启用和禁用 GitLab CI / CD](../../ci/enable_or_disable_ci.html)
    *   [管道](../../ci/pipelines/index.html) ：从 UI 配置和可视化 GitLab CI / CD 管道
        *   [计划的管道](../../ci/pipelines/schedules.html) ：计划管道以在选定的时间开始
        *   [管道图](../../ci/pipelines/index.html#visualize-pipelines) ：通过 UI 查看整个管道
        *   [作业工件](../../ci/pipelines/job_artifacts.html) ：定义，浏览和下载作业工件
        *   [管道设置](../../ci/pipelines/settings.html) ：设置 Git 策略（选择从作业中的 GitLab 提取存储库的默认方式），超时（定义可以运行作业的最长时间（以分钟为`.gitlab-ci.yml` ）） `.gitlab-ci.yml`自定义路径，测试覆盖率分析，管道的可见性等
    *   [Kubernetes 集群集成](clusters/index.html) ：将您的 GitLab 项目与 Kubernetes 集群连接
    *   [功能标志](../../operations/feature_flags.html) ：功能标志允许您通过动态切换某些功能来以不同的方式发布项目
*   [GitLab Pages](pages/index.html) ：使用[GitLab Pages](pages/index.html)构建，测试和部署您的静态网站

**其他特性：**

*   [Wiki](wiki/index.html) ：在集成的 Wiki 中记录您的 GitLab 项目.
*   [片段](../snippets.html) ：存储，共享和协作代码片段.
*   [价值流分析](cycle_analytics.html) ：查看您的开发生命周期.
*   [见解](insights/index.html) ：配置对您的项目至关重要的见解.
*   [安全仪表板](security_dashboard.html) ：安全仪表板.
*   [语法突出显示](highlighting.html) ：一种自定义代码块的替代方法，它替代了 GitLab 的默认语言选择.
*   [徽章](badges.html) ：项目概述的徽章.
*   [发行版](releases/index.html) ：一种跟踪项目中可交付成果的方式，可作为源，构建输出，其他元数据和与代码的发行版本相关的其他工件的快照.
*   [Conan 软件包](../packages/conan_repository/index.html) ：您在 GitLab 中的私人 Conan 存储库.
*   [Maven 软件包](../packages/maven_repository/index.html) ：您在 GitLab 中的私有 Maven 存储库.
*   [NPM 软件包](../packages/npm_registry/index.html) ：您在 GitLab 中的私有 NPM 软件包注册表.
*   [代码所有者](code_owners.html) ：为某些文件指定代码所有者
*   [许可证合规性](../compliance/license_compliance/index.html) ：批准和拒绝项目的许可证.
*   [依赖项列表](../application_security/dependency_list/index.html) ：查看项目依赖项.
*   [要求](requirements/index.html) ：要求使您可以创建标准来检查产品.
*   [静态站点编辑器](static_site_editor/index.html) ：无需事先了解代码库或 Git 命令，即可在静态网站上快速编辑内容.
*   [代码智能](code_intelligence.html) ：代码导航功能.

### Project integrations[](#project-integrations "Permalink")

[将您的项目](integrations/index.html)与 Jira，Mattermost，Kubernetes，Slack 等进行[集成](integrations/index.html) .

## New project[](#new-project "Permalink")

了解如何在 GitLab 中[创建一个新项目](../../gitlab-basics/create-project.html) .

### Fork a project[](#fork-a-project "Permalink")

您可以[派生一个项目](repository/forking_workflow.html) ，以便：

*   通过分叉项目并创建从分支到上游项目的合并请求来进行代码协作
*   分叉一个示例项目以在其顶部工作

### Star a project[](#star-a-project "Permalink")

您可以为项目加注星标，以使其更容易找到您经常使用的项目. 项目拥有的明星数量可以表明其受欢迎程度.

为项目加注星标：

1.  转到要加注星标的项目的主页.
2.  在页面的右上角，点击**星标** .

要查看已加星标的项目，请执行以下操作：

1.  单击导航栏中的**项目** .
2.  Click **已加星标的项目**.
3.  GitLab 显示有关已加星标项目的信息，包括：

    *   项目描述，包括名称，描述和图标
    *   已为该项目加注星标的次数
    *   Number of times this project has been forked
    *   打开的合并请求数
    *   未解决问题的数量

### Explore projects[](#explore-projects "Permalink")

您可以探索 GitLab 上可用的其他流行项目. 探索项目：

1.  单击导航栏中的**项目** .
2.  Click **探索项目**.

GitLab 显示一个项目列表，按上次更新日期排序. 要查看具有最多[星星的](#star-a-project)项目，请单击" **最多星星"** . 要查看过去一个月中评论数量最多的项目，请点击**趋势** .

## Project settings[](#project-settings "Permalink")

将项目的可见性级别和访问级别设置为各个页面，并执行诸如归档，重命名或传输项目的操作.

通读有关[项目设置](settings/index.html)的文档.

## Import or export a project[](#import-or-export-a-project "Permalink")

*   [Import a project](import/index.html) from:
    *   [GitHub to GitLab](import/github.html)
    *   [Bitbucket to GitLab](import/bitbucket.html)
    *   [Gitea to GitLab](import/gitea.html)
    *   [FogBugz to GitLab](import/fogbugz.html)
*   [Export a project from GitLab](settings/import_export.html#exporting-a-project-and-its-data)
*   [Importing and exporting projects between GitLab instances](settings/import_export.html)

## Remove a project[](#remove-a-project "Permalink")

要删除项目，请首先导航到该项目的主页.

1.  导航至**设置>常规** .
2.  展开**高级**部分.
3.  向下滚动到" **删除项目"**部分.
4.  Click **移除专案**
5.  通过输入所需的文本来确认此操作.

### Delayed removal[](#delayed-removal-premium "Permalink")

默认情况下，单击以删除项目后会延迟 7 天. 管理员可以在这段时间内恢复项目. [管理员可以更改](../admin_area/settings/visibility_and_access_controls.html#default-deletion-adjourned-period-premium-only)此延迟.

管理员可以查看所有待删除项目. 如果您是管理员，请转到顶部导航栏，单击" **项目">"您的项目"** ，然后选择"已**删除的项目"**选项卡. 管理员可以从此选项卡还原任何项目.

## CI/CD for external repositories[](#cicd-for-external-repositories-premium "Permalink")

您可以将存储库作为 CI / CD 项目连接，而不是将存储库直接导入到 GitLab.

通读[CI / CD 上有关外部存储库](../../ci/ci_cd_for_external_repos/index.html)的文档.

## Project members[](#project-members "Permalink")

了解如何[将成员添加到您的项目中](members/index.html) .

## Project activity[](#project-activity "Permalink")

要查看项目的活动，请导航至**项目概述>活动** . 在此处，您可以单击选项卡以查看**所有**活动，或查看按**Push 事件** ， **Merge 事件** ， **Issue 事件** ， **Comment** ， **Team**和**Wiki**过滤的**活动** .

### Leave a project[](#leave-a-project "Permalink")

当项目属于组时（在[组命名空间下](../group/index.html#namespaces) ）， **离开项目**将仅显示在项目的仪表板上. 如果您选择退出项目，那么您将不再是项目成员，因此无法参与.

## Project’s landing page[](#projects-landing-page "Permalink")

项目的登录页面根据项目的可见性设置和用户权限显示不同的信息.

对于公共项目以及[有权查看该项目代码](../permissions.html#project-members-permissions)的内部和私有项目的成员：

*   显示[`README`文件或索引文件的](repository/#repository-readme-and-index-files)内容（如果有），然后显示项目存储库中的目录列表.
*   如果项目不包含这些文件中的任何一个，则访问者将看到存储库的文件和目录列表.

对于没有权限查看项目代码的用户：

*   显示维基主页（如果有）.
*   显示项目中的问题列表.

## Redirects when changing repository paths[](#redirects-when-changing-repository-paths "Permalink")

当存储库路径更改时，从旧位置平稳过渡到新位置至关重要. GitLab 提供两种重定向：Web UI 和 Git 推/拉重定向.

根据情况，可能会有所不同.

When [renaming a user](../profile/index.html#changing-your-username), [changing a group path](../group/index.html#changing-a-groups-path) or [renaming a repository](settings/index.html#renaming-a-repository):

*   名称空间及其下的任何内容（例如项目）的现有 Web URL 将重定向到新 URL.
*   从 GitLab 10.3 开始，命名空间下项目的现有 Git 远程 URL 将重定向到新的远程 URL. 每次将其推/拉到更改位置的存储库时，都会显示一条警告消息，提示您更新遥控器，而不是拒绝操作. 这意味着在重命名后，任何自动化脚本或 Git 客户端将继续工作，从而使任何过渡都更加顺畅.
*   The redirects will be available as long as the original path is not claimed by another group, user or project.

## Use your project as a Go package[](#use-your-project-as-a-go-package "Permalink")

任何项目都可以用作 Go 包. GitLab 会正确响应`go get`和`godoc.org`发现请求，包括[`go-import`](https://s0golang0org.icopy.site/cmd/go/)和[`go-source`](https://github.com/golang/gddo/wiki/Source-Code-Links)元标记.

私有项目（包括子组中的项目）可以用作 Go 包，但可能需要进行配置才能正常工作. 无论身份验证或授权如何，GitLab 都会正确响应以`go get` *不在*子组中的项目的发现请求. 要使用子组中的私有项目作为 Go 包，必须进行[身份验证](#authenticate-go-requests) . 否则，GitLab 会将子组中私有项目的路径截断到前两个段，从而导致`go get`失败.

GitLab 实现了自己的 Go 代理. 此功能必须由管理员启用，并且需要其他配置. 请参阅[GitLab Go 代理](../packages/go_proxy/index.html) .

### Disable Go module features for private projects[](#disable-go-module-features-for-private-projects "Permalink")

In Go 1.12 and later, Go queries module proxies and checksum databases in the process of [fetching a module](../../development/go_guide/dependencies.html#fetching). This can be selectively disabled with `GOPRIVATE` (disable both), [`GONOPROXY`](../../development/go_guide/dependencies.html#proxies) (disable proxy queries), and [`GONOSUMDB`](../../development/go_guide/dependencies.html#fetching) (disable checksum queries).

`GOPRIVATE` ， `GONOPROXY`和`GONOSUMDB`是 Go 模块和 Go 模块前缀的逗号分隔列表. 例如， `GOPRIVATE=gitlab.example.com/my/private/project`将禁用对该项目的查询，而`GOPRIVATE=gitlab.example.com`将禁用`GOPRIVATE=gitlab.example.com` *所有*项目的查询. 如果模块名称或其前缀出现在`GOPRIVATE`或`GONOPROXY` ，则 Go 不会查询模块代理. 如果模块名称或其前缀出现在`GONOPRIVATE`或`GONOSUMDB` ，则 Go 不会查询校验和数据库.

### Authenticate Go requests[](#authenticate-go-requests "Permalink")

要验证对 Go 私有项目的请求，请在密码字段中使用[`.netrc`文件](https://ec.haxx.se/usingcurl-netrc.html)和[个人访问令牌](../profile/personal_access_tokens.html) . **仅当可以通过 HTTPS 访问您的 GitLab 实例时，此方法才有效.** `go`命令不会通过不安全的连接传输凭据. 这将验证 Go 直接发出的所有 HTTPS 请求，但不会验证通过 Git 发出的请求.

例如：

```
machine example.gitlab.com
login <gitlab_user_name>
password <personal_access_token> 
```

**注意：**在 Windows 上，Go 读取`~/_netrc`而不是`~/.netrc` .

### Authenticate Git fetches[](#authenticate-git-fetches "Permalink")

如果无法从代理中获取模块，Go 将退回到使用 Git（对于 GitLab 项目）. Git 将使用`.netrc`来认证请求. 另外，可以将 Git 配置为在请求 URL 中嵌入特定的凭据，或者使用 SSH 代替 HTTPS（因为 Go 始终使用 HTTPS 来获取 Git 存储库）：

```
# embed credentials in any request to GitLab.com:
git config --global url."https://${user}:${personal_access_token}@gitlab.example.com".insteadOf "https://gitlab.example.com"

# use SSH instead of HTTPS:
git config --global url."git@gitlab.example.com".insteadOf "https://gitlab.example.com" 
```

## Access project page with project ID[](#access-project-page-with-project-id "Permalink")

在 GitLab 11.8 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53671) .

要使用项目 ID 从 GitLab UI 快速访问项目，请在浏览器或其他访问项目的工具中访问`/projects/:id` URL.

## Project aliases[](#project-aliases-premium-only "Permalink")

[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3264) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.1.

将存储库迁移到 GitLab 并被其他系统访问时，能够使用相同的名称访问它们非常有用，尤其是当它们很多时. 它降低了在大量系统中更改大量 Git URL 的风险.

manbetx 客户端打不开提供了功能来帮助这一点. 在 GitLab 中，通常使用名称空间和项目名称访问存储库. 也可以通过项目别名访问它们. 此功能仅在通过 SSH 的 Git 上可用.

项目别名只能通过 API 创建，并且只能由 GitLab 管理员创建. 有关更多详细信息，请遵循[Project Aliases API 文档](../../api/project_aliases.html) .

一旦为项目创建了别名（例如，项目`https://gitlab.com/gitlab-org/gitlab`的别名`gitlab` ），就可以使用别名（例如`git clone git@gitlab.com:gitlab.git` ）来克隆存储库. `git clone git@gitlab.com:gitlab.git`而不是`git clone git@gitlab.com:gitlab-org/gitlab.git` ）.

## Project APIs[](#project-apis "Permalink")

您的项目可以使用许多[API](../../api/README.html) ：

*   [Badges](../../api/project_badges.html)
*   [Clusters](../../api/project_clusters.html)
*   [Threads](../../api/discussions.html)
*   [General](../../api/projects.html)
*   [Import/export](../../api/project_import_export.html)
*   [Issue Board](../../api/boards.html)
*   [Labels](../../api/labels.html)
*   [Markdown](../../api/markdown.html)
*   [Merge Requests](../../api/merge_requests.html)
*   [Milestones](../../api/milestones.html)
*   [Services](../../api/services.html)
*   [Snippets](../../api/project_snippets.html)
*   [Templates](../../api/project_templates.html)
*   [Traffic](../../api/project_statistics.html)
*   [Variables](../../api/project_level_variables.html)
*   [Aliases](../../api/project_aliases.html)