提交 5a188ddc 编写于 作者: Lab机器人's avatar Lab机器人

first edition

上级 374c336f
......@@ -8,7 +8,7 @@
* [徽章](docs/user/project/badges.md)
* [批量编辑](docs/user/project/bulk-edit.md)
* [新建项目](docs/basic/create-project.md)
* [描述模板](docs/user/project/discription-template.md)
* [描述模板](docs/user/project/description-template.md)
* [文件查找](docs/user/project/repo/file-find.md)
* [合并请求](docs/user/project/merge-request.md)
* [允许协作](docs/user/project/merge-request/fork-collaboration.md)
......@@ -25,7 +25,6 @@
* [导入](docs/user/project/import.md)
* [Github](docs/user/project/import/github.md)
* [URL](docs/user/project/import/by-url.md)
* [推送选项](docs/user/project/push-rules.md)
* [Releases](docs/user/project/releases.md)
* [代码仓库](docs/user/project/repo.md)
* [分支](docs/user/project/repo/branches.md)
......@@ -50,7 +49,6 @@
* [标签](docs/user/project/label.md)
* [管理Issue](docs/user/project/issues/manage.md)
* [里程碑](docs/user/project/milestone.md)
* [服务台](docs/user/project/serve-desk.md)
* [Issue排序](docs/user/project/issues/sort.md)
* [用户](docs/user.md)
* [举报用户](docs/user/abuse.md)
......@@ -68,7 +66,5 @@
* [自动填充](docs/user/project/autofill.md)
* [预留命名空间](docs/user/reserved.md)
* [搜索](docs/user/search.md)
* [高级全局搜索](docs/user/search/global.md)
* [高级语法搜索](docs/user/search/syntax.md)
* [时间跟踪](docs/user/project/time-track.md)
* [待办事项](docs/user/todo.md)
\ No newline at end of file
无法预览此类型文件
# 新建项目[](#create-a-project "Permalink")
开发中大多数工作都在一个[项目](/../user/repo.md)完成,文件和代码都保存在项目中,并且大多数功能都将在项目范围内使用。
开发中大多数工作都在一个[项目](/docs/user/project/repo.md)完成,文件和代码都保存在项目中,并且大多数功能都将在项目范围内使用。
## 新建一个项目[](#create-a-project "Permalink")
......@@ -12,7 +12,7 @@
* 使用可用的[项目模板](#project-templates)之一创建一个项目
* 从其他第三方导入一个项目,目前支持 github 以及 url 导入这两种方式
**注意:**有关不能用作项目名称的单词列表,请参见[保留的项目和组名称](../user/reserved_names.html)
**注意:**有关不能用作项目名称的单词列表,请参见[保留的项目和组名称](/docs/user/reserved.md)
### 空项目[](#blank-projects "Permalink")
......@@ -22,7 +22,7 @@
* **项目名称****项目名称**字段中. 您不能使用特殊字符,但可以使用空格,连字符,下划线甚至表情符号;添加名称时, **项目 URL**将自动填充(仅在项目名称不含中文时会自动填充)
* **项目 URL**字段中项目的路径是项目的 URL 路径
* 使用" **项目描述"(可选)**字段,您可以为项目的仪表板输入描述,这将帮助其他人了解您的项目的含义;尽管不是必需的,但我们建议您还是填写上您的项目简介。
* 更改" **可见性级别"**会修改用户的项目[查看和访问权限](../public_access/public_access.html)
* 更改" **可见性级别"**会修改用户的项目查看和访问权限
* 选择**使用 README 初始化存储库**选项将创建一个 README 文件,以便 Git 存储库被初始化,具有默认分支并可以被克隆
2. 点击 **新建项目**
......@@ -54,4 +54,4 @@
#### 自定义项目模板[](#custom-project-templates-premium "Permalink")
自定义项目可以从**实例**选项卡,或在[组级别](../user/group/custom_project_templates.html)**组**选项卡,在**从模板**标签上的**创建** ,创建过程与内置模板创建项目基本一致。
\ No newline at end of file
自定义项目可以从**实例**选项卡,或在组级别从**组**选项卡,在**从模板**标签上的**创建** ,创建过程与内置模板创建项目基本一致。
\ No newline at end of file
# 帮助文档
*访问[codechina.csdn.net/docs,](codechina.csdn.net/docs)以获得优化的导航,可发现性和可读性。*
*访问[codechina.csdn.net/docs](https://codechina.csdn.net/codechina/help-docs)以获得优化的导航,可发现性和可读性。*
## 概览[](#概览 "Permalink")
......@@ -26,19 +26,19 @@
| 计划主题 | 描述 |
| --- | --- |
| [Burndown Charts](user/project/milestones/burndown_charts.html) | 在特定的里程碑中观察项目的进度 |
| [讨论](user/discussions/index.html) | 问题,提交和合并请求中的线程,注释和可解决线程 |
| [截止日期](user/project/issues/due_dates.html) | 跟踪发行期限|
| [Epics](user/group/epics/index.html) | 跟踪共享主题的问题组|
| [问题](user/project/issues/index.html) ,包括[机密问题](user/project/issues/confidential_issues.html)[发布和合并请求模板](user/project/description_templates.html) ,和[移动的问题](user/project/issues/managing_issues.html#moving-issues) | 项目问题并限制对问题的访问,并创建用于提交新问题和合并请求的模板。 此外,在项目之间转移问题。|
| [标签](user/project/labels.html) | 分类问题或使用描述性标签合并请求|
| [里程碑](user/project/milestones/index.html) | 设置发布问题和合并请求的里程碑,并带有可选的截止日期|
| [看板](user/project/issue_board.html) | 在 Scrum 或看板上显示问题|
| [快捷方式](user/project/quick_actions.html) | 针对问题或合并请求的常见操作的快捷方式,而无需单击按钮或在WEB界面中使用下拉菜单。 |
| [关联 Issue](user/project/issues/related_issues.html) | 在问题之间建立关系. |
| [Roadmap](user/group/roadmap/index.html) | 可视化史诗般的时间表 |
| [时间跟踪](user/project/time_tracking.html) | 跟踪花费在问题和合并请求上的时间 |
| [代办事项](user/todos.html) | 通过在简单仪表板上显示的时间顺序列表,跟踪需要注意的工作。 |
| Burndown Charts| 在特定的里程碑中观察项目的进度 |
| [讨论](/docs/user/discussions.md) | 问题,提交和合并请求中的线程,注释和可解决线程 |
| [截止日期](/docs/user/project/issues/due-date.md) | 跟踪发行期限|
| Epics | 跟踪共享主题的问题组|
| [ Issue ](/docs/user/project/issues.md) ,包括[机密问题](/docs/user/project/issues/confidential.md)[发布和合并请求模板](/docs/user/project/discription-template.md) ,和[移动的问题](/docs/user/project/issues/manage.md#moving-issues) | 项目问题并限制对问题的访问,并创建用于提交新问题和合并请求的模板。 此外,在项目之间转移问题。|
| [标签](/docs/user/project/label.md) | 分类问题或使用描述性标签合并请求|
| [里程碑](/docs/user/project/milestone.md) | 设置发布问题和合并请求的里程碑,并带有可选的截止日期|
| [看板](/docs/user/project/kanban.md)) | 在 Scrum 或看板上显示问题|
| [快捷方式](/docs/user/shortcutkey.md) | 针对问题或合并请求的常见操作的快捷方式,而无需单击按钮或在WEB界面中使用下拉菜单。 |
| [关联 Issue](/docs/user/project/issues/crosslinking.md) | 在问题之间建立关系. |
| Roadmap | 可视化史诗般的时间表 |
| [时间跟踪](/docs/user/project/time-track.md) | 跟踪花费在问题和合并请求上的时间 |
| [代办事项](/docs/user/todo.md) | 通过在简单仪表板上显示的时间顺序列表,跟踪需要注意的工作。 |
[返回概览](#概览)
......@@ -54,17 +54,17 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 创建主题-项目和组 | 描述 |
| --- | --- |
| [全局搜索](user/search/advanced_global_search.html) | 利用 Elasticsearch 在整个 CODEChina 实例上进行更快,更高级的代码搜索|
| [语法检索](user/search/advanced_search_syntax.html) | 使用高级查询获得更具针对性的搜索结果|
| [Contribution analytics](user/group/contribution_analytics/index.html) | 请参阅小组贡献者的详细统计信息|
| [创建](basics/create-project.html)[fork](basics/fork-project.html)项目,以及[导入项目](user/project/settings/import_export.html) [](user/project/settings/import_export.html) [实例之间](user/project/settings/import_export.html) | 创建,复制和移动项目 |
| [锁定文件](user/project/file_lock.html) | 锁定文件以避免合并冲突 |
| [组织](user/group/index.html) and [子组织](user/group/subgroups/index.html) | 分组组织您的项目 |
| [Issue 分析](user/group/issues_analytics/index.html) | 检查每月创建了多少个问题|
| [项目](user/project/index.html) ,包括[项目访问](public_access/public_access.html)[设置](user/project/settings/index.html) | 托管源代码,并控制项目的可见性和设置配置。|
| [搜索](/user/search) | 搜索问题,合并请求,项目,组和待办事项。|
| [Web IDE](user/project/web_ide/index.html) | 在 WebIDE 中编辑文件|
| [Wikis](user/project/wiki/index.html) | 使用内置的 Wiki 来管理您的文档|
| 全局搜索 | 利用 Elasticsearch 在整个 CODEChina 实例上进行更快,更高级的代码搜索|
| 语法检索 | 使用高级查询获得更具针对性的搜索结果|
| Contribution analytics | 请参阅小组贡献者的详细统计信息|
| [创建](/docs/basic/create-project.md)并 fork 项目,以及[导入项目](/docs/user/project/import.md) | 创建,复制和移动项目 |
| 锁定文件 | 锁定文件以避免合并冲突 |
| [组织](/docs/user/org.md) and [子组织](/docs/user/org/sub_org.md) | 分组组织您的项目 |
| Issue 分析 | 检查每月创建了多少个问题|
| [项目](/docs/user/project.md) ,包括项目访问和[设置](/docs/user/project/settings.md) | 托管源代码,并控制项目的可见性和设置配置。|
| [搜索](/docs/img/add_user_search_people.png)) | 搜索问题,合并请求,项目,组和待办事项。|
| [Web IDE](/docs/user/project/webide.mdl) | 在 WebIDE 中编辑文件|
| [Wikis](/docs/user/project/wiki.md) | 使用内置的 Wiki 来管理您的文档|
[返回概览](#概览)
......@@ -72,18 +72,18 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 创建主题-代码仓库 | 描述 |
| --- | --- |
| [分支](user/project/repository/branches/index.html)[默认分支](user/project/repository/branches/index.html#default-branch) | 如何在 CODEChina 中使用分支 |
| [提交](user/project/repository/index.html#commits) and [署名提交](user/project/repository/gpg_signed_commits/index.html) | 处理提交,并使用 GPG 对您的提交进行签名。 |
| [创建分支](user/project/repository/web_editor.html#create-a-new-branch)[创建](user/project/repository/web_editor.html#create-a-file)[上传](user/project/repository/web_editor.html#upload-a-file)文件,并[创建目录](user/project/repository/web_editor.html#create-a-directory) | 创建分支,创建和上传文件以及创建目录。|
| [删除已合并的分支](user/project/repository/branches/index.html#delete-merged-branches) | 合并更改后的批量删除分支|
| [文件模板](user/project/repository/web_editor.html#template-dropdowns) | 通用文件的文件模板 |
| [文件](user/project/repository/index.html#files) | 文件管理 |
| [Jupyter Notebook 文件](user/project/repository/jupyter_notebooks/index.html#jupyter-notebook-files) | 对`.ipynb`文件的支持 |
| [保护分支](user/project/protected_branches.html) | 使用受保护的分支 |
| [推送规则](push_rules/push_rules.html) | 对项目推送的附加控制 |
| [代码仓库](user/project/repository/index.html) | 在网页中管理源代码仓库 |
| [镜像代码仓库](user/project/repository/repository_mirroring.html) | 推入或拉出外部的代码仓库 |
| [处理合并请求](user/project/repository/web_editor.html#tips) | 在提交时启动合并请求 |
| [分支](/docs/user/project/repo/branches.md)[默认分支](/docs/user/project/repo/branches.md#default-branch) | 如何在 CODEChina 中使用分支 |
| [提交](/docs/user/project/repo.md#commits) and [署名提交](/docs/user/project/repo/gpg-sign.md) | 处理提交,并使用 GPG 对您的提交进行签名。 |
| [创建分支](/docs/user/project/repo/web-editor.md#create-a-new-branch)[创建](/docs/user/project/repo/web-editor.md#create-a-file)[上传](/docs/user/project/repo/web-editor.md#upload-a-file)文件,并[创建目录](/docs/user/project/repo/web-editor.md#create-a-directory) | 创建分支,创建和上传文件以及创建目录。|
| [删除已合并的分支](/docs/user/project/repo/branches.md#delete-merged-branches) | 合并更改后的批量删除分支|
| [文件模板](/docs/user/project/repo/web-editor.md#template-dropdowns) | 通用文件的文件模板 |
| [文件](/docs/user/project/repo.md#files) | 文件管理 |
| Jupyter Notebook 文件 | 对`.ipynb`文件的支持 |
| [保护分支](/docs/user/project/protected-branch.md) | 使用受保护的分支 |
| 推送规则| 对项目推送的附加控制 |
| [代码仓库](/docs/user/project/repo.md) | 在网页中管理源代码仓库 |
| 镜像代码仓库 | 推入或拉出外部的代码仓库 |
| [处理合并请求](/docs/user/project/repo/web-editor.md#tips) | 在提交时启动合并请求 |
[返回概览](#概览)
......@@ -91,11 +91,11 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 创建主题-合并请求 | 描述 |
| --- | --- |
| [在本地处理合并请求](user/project/merge_requests/reviewing_and_managing_merge_requests.html#checkout-merge-requests-locally) | 在本地处理合并请求的提示|
| [Cherry-pick](user/project/merge_requests/cherry_pick_changes.html) | 对更改进行 Cherry Pick |
| [Merge request thread resolution](user/discussions/index.html#moving-a-single-thread-to-a-new-issue) | 解析线程,将合并请求中的线程移至问题,并且仅在解决所有线程后才允许合并请求。 |
| [合并请求](user/project/merge_requests/index.html) | 合并请求管理 |
| [草稿合并请求](user/project/merge_requests/work_in_progress_merge_requests.html) | 防止合并草稿合并请求 |
| 在本地处理合并请求 | 在本地处理合并请求的提示|
| [Cherry-pick](/docs/user/project/merge-request/cherry-pick.md) | 对更改进行 Cherry Pick |
| [Merge request thread resolution](/docs/user/discussions.md#moving-a-single-thread-to-a-new-issue) | 解析线程,将合并请求中的线程移至问题,并且仅在解决所有线程后才允许合并请求。 |
| [合并请求](/docs/user/project/merge-request.md) | 合并请求管理 |
| [草稿合并请求](/docs/user/project/merge-request/draft.md) | 防止合并草稿合并请求 |
[返回概览](#概览)
......@@ -106,9 +106,9 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 主题 | 描述 |
| --- | --- |
| [Basics guides](basics/README.html) | 开始在命令行和 CODEChina 上工作 |
| [Workflow overview]() | 利用最佳的工作流程增强您的工作流程 |
| [Markdown](user/markdown.html) | 高级格式化系统(Markdown) |
| Basics guides | 开始在命令行和 CODEChina 上工作 |
| Workflow overview | 利用最佳的工作流程增强您的工作流程 |
| [Markdown](/docs/user/markdown.md) | 高级格式化系统(Markdown) |
[返回概览](#概览)
......@@ -118,9 +118,9 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 主题 | 描述 |
| --- | --- |
| [用户账号](user/profile/index.html) | 管理您的帐户 |
| [账号验证](topics/authentication/index.html) | 具有两因素身份验证的帐户安全性,设置您的 SSH 密钥,并部署密钥以安全地访问您的项目。 |
| [用户权限](user/permissions.html) | 了解项目中的每个角色可以做什么 |
| [用户账号](/docs/user/account.md) | 管理您的帐户 |
| 账号验证 | 具有两因素身份验证的帐户安全性,设置您的 SSH 密钥,并部署密钥以安全地访问您的项目。 |
| [用户权限](/docs/user/permissions.md) | 了解项目中的每个角色可以做什么 |
[返回概览](#概览)
......@@ -130,9 +130,9 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 主题 | 描述 |
| --- | --- |
| [Git](topics/git/index.html) | Git 入门,分支策略,Git LFS 和高级用法 |
| Git | Git 入门,分支策略,Git LFS 和高级用法 |
| [Git cheat sheet](https://about.gitlab.com/images/press/git-cheat-sheet.pdf) | 下载描述最常用的 Git 操作的 PDF|
| [Work Flow](topics/flow.html) | 使用 Work Flow 策略探索 Git 的精华 |
| Work Flow| 使用 Work Flow 策略探索 Git 的精华 |
[返回概览](#概览)
......@@ -142,8 +142,8 @@ CODEChina 存储库随附分支工具和访问控制,可为项目和代码的
| 主题 | 描述 |
| --- | --- |
| [导入项目](user/project/import/index.html) | 从 GitHub,Bitbucket,GitLab.com,FogBugz 和 SVN 导入项目 |
| [从SVN迁移](user/project/import/svn.html) | 将 SVN 存储库转换为 Git 和 CODEChina |
| [导入项目](/docs/user/project/import.md) | 从 GitHub,Bitbucket,GitLab.com,FogBugz 和 SVN 导入项目 |
| 从SVN迁移 | 将 SVN 存储库转换为 Git 和 CODEChina |
[返回概览](#概览)
......@@ -155,8 +155,8 @@ CODEChina 是开源的,您可以通过以下方式为我们的开源社区做
| 主题 | 描述 |
| --- | --- |
| [开发](development/README.html) | 如何在开发上做贡献 |
| [协议](legal/README.html) | 贡献者许可协议 |
| [文档](development/documentation/index.html) | 如何在文档上做贡献|
| 开发 | 如何在开发上做贡献 |
| 协议 | 贡献者许可协议 |
| 文档 | 如何在文档上做贡献|
[返回概览](#概览)
\ No newline at end of file
......@@ -43,7 +43,7 @@ CODEChina 是一个基于 Git 的平台,它集成了许多用于软件开发
### Markdown[](#markdown "Permalink")
您可以在[markdown](markdown.html)中了解如何在主题、注释、Issue 及合并请求以及所有支持markdonw的其他地方来使用markdown填写你的内容。
您可以在[markdown](/docs/user/markdown.md)中了解如何在主题、注释、Issue 及合并请求以及所有支持markdonw的其他地方来使用markdown填写你的内容。
## 待办事项[](#todo "Permalink")
......
......@@ -14,11 +14,11 @@
* 更新您的个人信息
* 为您的个人资料设置[自定义状态](#current-status)
* 管理您的个人资料的[提交电子邮件](#commit-email)
* 管理[个人访问令牌](personal_access_tokens.html)以通过 API 和授权的应用程序访问您的帐户
* 选择用于[通知](notifications.html) ,基于 Web 的提交并显示在您的公开个人资料上的电子邮件
* 管理[SSH 密钥](../../ssh/README.html)以通过 SSH 访问您的帐户
* 管理您的[首选项](preferences.html#syntax-highlighting-theme)
* [查看您的活动会话](active_sessions.html)并在必要时撤消其中的任何一个
* 管理[个人访问令牌](/docs/user/profile/token.md)以通过 API 和授权的应用程序访问您的帐户
* 选择用于[通知](/docs/user/account/email-notify.md) ,基于 Web 的提交并显示在您的公开个人资料上的电子邮件
* 管理[SSH 密钥](/docs/ssh.md)以通过 SSH 访问您的帐户
* 管理您的[首选项](/docs/user/profile/preferences.md#syntax-highlighting-theme)
* 查看您的活动会话并在必要时撤消其中的任何一个
* 访问认证日志,这是涉及您帐户的重要事件的安全日志
## 当前状态[](#current-status "Permalink")
......
# 电子邮件通知[](#电子邮件通知 "Permalink")
GitLab 通知使您可以随时了解 GitLab 中发生的事情. 启用通知后,您可以接收有关问题,合并请求和史诗活动的更新. 通知通过电子邮件发送.
通知使您可以随时了解 CODEChina 中发生的事情,启用通知后,您可以接收有关 Issue、合并请求和 Epic 活动的更新,通知将通过电子邮件发送。
## Receiving notifications[](#receiving-notifications "Permalink")
## 接收通知[](#receiving-notifications "Permalink")
您将由于以下原因之一收到通知:
* 您参与发行,合并请求或史诗. 在这种情况下, *参与*意味着评论或编辑.
* You enable notifications in an issue, merge request, or epic. To enable notifications, click the **Notifications** toggle in the sidebar to *on*.
* 您参与 Issue、合并请求或 Epic,在这种情况下, *参与*意味着评论或编辑
* 您在 Issue、合并请求或 Epic 中启用了通知。要启用通知,请单击侧栏中的**通知**切换至*开*
启用通知后,您将收到有关该问题,合并请求或史诗中发生的操作的通知.
启用通知后,您将收到有关该 Issue、合并请求或 Epic 中发生的操作的通知。
**注意:**通知可能会被管理员阻止,从而阻止发送通知.
**注意:**通知可能会被管理员阻止,从而阻止发送通知
## Tuning your notifications[](#tuning-your-notifications "Permalink")
## 调整你的通知[](#tuning-your-notifications "Permalink")
通知的数量可能是巨大的. GitLab 允许您调整收到的通知. 例如,您可能希望收到有关特定项目中所有活动的通知,而对于其他项目,仅当您的名字被提及时才得到通知.
通知的数量可能是巨大的,CODEChina 允许您调整收到的通知。例如,您可能希望收到有关特定项目中所有活动的通知,而对于其他项目,仅当您的名字被提及时才得到通知。
您可以通过组合通知设置来调整收到的通知:
* [Global notification settings](#global-notification-settings)
* [Notification scope](#notification-scope)
* [Notification levels](#notification-levels)
* [全局通知设置]](#global-notification-settings)
* [通知范围](#notification-scope)
* [通知级别](#notification-levels)
### Editing notification settings[](#editing-notification-settings "Permalink")
### 编辑通知设置[](#editing-notification-settings "Permalink")
编辑通知设置:
1. 点击您的个人资料图片,然后选择**设置** .
2. 点击左侧边栏中的**通知** .
3. 编辑所需的通知设置. 编辑的设置将自动保存并启用.
1. 点击您的个人资料图片,然后选择**设置**
2. 点击左侧边栏中的**通知**
3. 编辑所需的通知设置,编辑的设置将自动保存并启用
这些通知设置仅适用于您. 它们不会影响同一项目或组中其他任何人收到的通知.
这些通知设置仅适用于您,它们不会影响同一项目或组中其他任何人收到的通知。
[![notification settings](img/81fe297de1dccaedd3340735454273bc.png)](img/notification_global_settings.png)
## 全局通知设置[](#global-notification-settings "Permalink")
## Global notification settings[](#global-notification-settings "Permalink")
**全局通知设置**是默认设置,除非您为项目或组选择不同的值.
**全局通知设置**是默认设置,除非您为项目或组选择不同的值:
* 通知电子邮件
* 这是您的通知将发送到的电子邮件地址.
* 这是您的通知将发送到的电子邮件地址
* 全局通知级别
* 这是适用于所有通知的默认[通知级别](#notification-levels) .
* 接收有关您自己的活动的通知.
* 如果您想接收有关自己活动的通知,请选中此复选框. 默认值:未选中.
* 这是适用于所有通知的默认[通知级别](#notification-levels)
* 接收有关您自己的活动的通知
* 如果您想接收有关自己活动的通知,请选中此复选框。 默认值:未选中
### Notification scope[](#notification-scope "Permalink")
### 通知范围[](#notification-scope "Permalink")
您可以通过为每个项目和组选择不同的通知级别来调整通知的范围.
您可以通过为每个项目和组选择不同的通知级别来调整通知的范围
通知范围按优先级顺序应用(从高到低):
* Project
* 对于每个项目,您可以选择一个通知级别. 您的项目设置将覆盖组设置.
* Group
* 对于每个组,您可以选择一个通知级别. 您的群组设置会覆盖您的默认设置.
* 项目
* 对于每个项目,您可以选择一个通知级别,您的项目设置将覆盖组设置
* 组织
* 对于每个组,您可以选择一个通知级别,您的群组设置会覆盖您的默认设置
* 全局(默认)
* 如果尚未为发生活动的项目或组选择通知级别,则将应用全局或*默认*通知级别.
#### Project notifications[](#project-notifications "Permalink")
* 如果尚未为发生活动的项目或组选择通知级别,则将应用全局或*默认*通知级别
您可以为每个项目选择一个通知级别. 如果您需要密切监视选定项目中的活动,这将很有用.
#### 项目通知[](#project-notifications "Permalink")
[![notification settings](img/bab81ba0a915cec8b039166d2defc074.png)](img/notification_project_settings_v12_8.png)
您可以为每个项目选择一个通知级别,如果您需要密切监视选定项目中的活动,这将很有用。
要为项目选择通知级别,请使用以下两种方法之一:
1. 点击您的个人资料图片,然后选择**设置** .
2. 点击左侧边栏中的**通知** .
3. 在" **项目"**部分中找到该项目.
4. 选择所需的[通知级别](#notification-levels) .
Or:
1. 点击您的个人资料图片,然后选择**设置**
2. 点击左侧边栏中的**通知**
3. 在" **项目"**部分中找到该项目
4. 选择所需的[通知级别](#notification-levels)
1. 导航到项目页面.
2. 单击带有下拉图标的通知下拉列表.
3. 选择所需的[通知级别](#notification-levels) .
或者:
有关如何在有新版本发布时通知的演示,请参阅[发布通知](https://www.youtube.com/watch?v=qyeNkGgqmH4) .
1. 导航到项目页面
2. 单击带有下拉图标的通知下拉列表
3. 选择所需的[通知级别](#notification-levels)
#### Group notifications[](#group-notifications "Permalink")
#### 组织通知[](#group-notifications "Permalink")
您可以为每个组选择通知级别和电子邮件地址.
您可以为每个组织选择通知级别和电子邮件地址。
[![notification settings](img/c39dc466882289b42ad827dbbc05b39f.png)](img/notification_group_settings_v12_8.png)
##### Group notification level[](#group-notification-level "Permalink")
##### 组织通知级别[](#group-notification-level "Permalink")
要为组选择通知级别,请使用以下两种方法之一:
1. 点击您的个人资料图片,然后选择**设置** .
2. 点击左侧边栏中的**通知** .
3. 在" **组"**部分中找到该项目.
4. 选择所需的[通知级别](#notification-levels) .
1. 点击您的个人资料图片,然后选择**设置**
2. 点击左侧边栏中的**通知**
3. 在" **组"**部分中找到该项目
4. 选择所需的[通知级别](#notification-levels)
* * *
1. 导航到组的页面.
2. 单击带有下拉图标的通知下拉列表.
3. 选择所需的[通知级别](#notification-levels) .
##### Group notification email address[](#group-notification-email-address "Permalink")
1. 导航到组的页面
2. 单击带有下拉图标的通知下拉列表
3. 选择所需的[通知级别](#notification-levels)
在 GitLab 12.0 中引入
##### 组织通知邮件地址[](#group-notification-email-address "Permalink")
您可以选择一个电子邮件地址,以接收您所属的每个组的通知. 例如,如果您是自由职业者,并且希望将有关客户项目的电子邮件分开存放,这可能会很有用.
您可以选择一个电子邮件地址,以接收您所属的每个组的通知。例如,如果您是自由职业者,并且希望将有关客户项目的电子邮件分开存放,这可能会很有用。
1. 点击您的个人资料图片,然后选择**设置** .
2. 点击左侧边栏中的**通知** .
3. 在" **组"**部分中找到该项目.
4. 选择所需的电子邮件地址.
1. 点击您的个人资料图片,然后选择**设置**
2. 点击左侧边栏中的**通知**
3. 在" **组织"**部分中找到该项目
4. 选择所需的电子邮件地址
### Notification levels[](#notification-levels "Permalink")
### 通知级别[](#notification-levels "Permalink")
对于每个项目和组,您可以选择以下级别之一:
对于每个项目和组,您可以选择以下级别之一:
| Level | Description |
| 级别 | 描述 |
| --- | --- |
| Global | 您的全局设置适用. |
| Watch | 接收任何活动的通知. |
| 提一下 | `@mentioned`在评论中`@mentioned`接收通知. |
| Participate | 接收有关您参与的线程的通知. |
| Disabled | 关闭通知. |
| Custom | 接收有关自定义选定事件的通知. |
| 全局 | 您的全局设置适用 |
| 关注 | 接收任何活动的通知 |
| 提及 | `@mentioned`在评论中`@mentioned`接收通知 |
| 参与 | 接收有关您参与的线程的通知 |
| 停用 | 关闭通知 |
| 自定义 | 接收有关自定义选定事件的通知|
## Notification events[](#notification-events "Permalink")
## 通知事件[](#notification-events "Permalink")
将通知用户以下事件:
| Event | 发给 | 设定等级 |
| 事件 | 发给 | 设定等级 |
| --- | --- | --- |
| 添加了新的 SSH 密钥 | User | 安全电子邮件,始终发送. |
| 添加了新电子邮件 | User | 安全电子邮件,始终发送. |
| 电邮已变更 | User | 安全电子邮件,始终发送. |
| 密码已更改 | User | 安全电子邮件,始终发送. |
| 新用户创建 | User | 在创建用户时发送,但 OmniAuth(LDAP)除外 |
| 添加了新的 SSH 密钥 | User | 安全电子邮件,始终发送|
| 添加了新电子邮件 | User | 安全电子邮件,始终发送|
| 电邮已变更 | User | 安全电子邮件,始终发送 |
| 密码已更改 | User | 安全电子邮件,始终发送 |
| 用户已添加到项目 | User | 将用户添加到项目时发送 |
| 项目访问权限级别已更改 | User | 更改用户项目访问级别时发送 |
| 用户已添加到组 | User | 将用户添加到组时发送 |
......@@ -143,11 +132,11 @@ Or:
| 项目已移 | 项目成员(1) | (1)不禁用 |
| 新品发布 | 项目成员 | 自定义通知 |
## Issue / Epics / Merge request events[](#issue--epics--merge-request-events "Permalink")
## Issue / Epic / 合并请求活动[](#issue--epics--merge-request-events "Permalink")
在以下大多数情况下,通知将发送到:
* Participants:
* 参与:
* 发行/合并请求的作者和受让人
* 关于问题/合并请求的评论的作者
* `@username`在问题,合并请求或史诗的标题或描述中提到的任何人
......@@ -156,8 +145,6 @@ Or:
* 订阅者:手动订阅问题,合并请求或史诗的任何人
* 自定义:通知级别为"自定义"的用户针对下表中显示的任何事件打开了通知
**注意:**为了最大程度地减少不需要任何操作的通知的数量,从[GitLab 12.9 起](https://gitlab.com/gitlab-org/gitlab/-/issues/616) ,不再为项目中的所有活动通知合格的批准者. 要接收它们,他们必须将其用户通知设置更改为" **观看"** .
| Event | 发给 |
| --- | --- |
| 新问题 |   |
......@@ -176,49 +163,46 @@ Or:
| 更改里程碑合并请求 | 选择了此事件的订户,提及的参与者和自定义通知级别 |
| 删除里程碑合并请求 | 选择了此事件的订户,提及的参与者和自定义通知级别 |
| 新评论 | 以上内容,加上评论中`@username`提及的任何人,通知级别为"提及"或更高 |
| 管道失败 | 管道的作者 |
| 固定管道 | 管道的作者. 默认启用. 在 GitLab 13.1 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/24309) . 管理员可以使用`ci_pipeline_fixed_notifications` [功能标记](../../administration/feature_flags.html)禁用此通知选项. |
| 成功的管道 | 管道的作者(如果他们具有成功管道的自定义通知设置). 如果管道先前失败,则将为失败后的第一个成功管道发送`Fixed pipeline`消息,然后为任何进一步成功的管道发送`Successful pipeline`消息. |
| 新史诗 |   |
| 接近史诗 |   |
| 重新开启史诗 |   |
此外,如果发布或合并请求的标题或描述发生了更改,则通知将通过`@username`发送到任何**新**提及的内容,就像在原始文本中提到的一样.
此外,如果发布或合并请求的标题或描述发生了更改,则通知将通过`@username`发送到任何**新**提及的内容,就像在原始文本中提到的一样
您不会收到有关您自己创建的问题,合并请求或里程碑的通知(除非由于问题而定). 仅当其他人对您创建或提及的内容进行评论或添加更改时,您才会收到自动通知.
您不会收到有关您自己创建的问题,合并请求或里程碑的通知(除非由于问题而定)。仅当其他人对您创建或提及的内容进行评论或添加更改时,您才会收到自动通知。
如果开放的合并请求由于冲突而变得不可合并,则将通知其原因. 如果用户还将合并请求设置为一旦管道成功就自动合并,则该用户也会收到通知.
如果开放的合并请求由于冲突而变得不可合并,则将通知其原因
## Filtering email[](#filtering-email "Permalink")
## 过滤 email[](#filtering-email "Permalink")
通知电子邮件包括特定于 GitLab 的标题. 您可以根据这些标头的内容过滤通知电子邮件,以更好地管理您的通知. 例如,您可以过滤特定项目的所有电子邮件,在该项目中您将被分配合并请求或问题.
通知电子邮件包括特定于 CODEChina 的标题。您可以根据这些标头的内容过滤通知电子邮件,以更好地管理您的通知。 例如,您可以过滤特定项目的所有电子邮件,在该项目中您将被分配合并请求或问题。
下表列出了所有特定于 GitLab 的电子邮件标题:
下表列出了所有特定于 CODEChina 的电子邮件标题:
| Header | Description |
| 标题 | 描述 |
| --- | --- |
| `X-GitLab-Group-Id` | 组的 ID. 仅在史诗的通知电子邮件中显示. |
| `X-GitLab-Group-Path` | 组的路径. 仅在史诗的通知电子邮件中显示. |
| `X-GitLab-Project` | 通知所属的项目的名称. |
| `X-GitLab-Project-Id` | 项目的 ID. |
| `X-GitLab-Project-Path` | 项目的路径. |
| `X-GitLab-(Resource)-ID` | 通知所针对的资源的 ID. 该资源例如可以是`Issue``MergeRequest``Commit`或其他此类资源. |
| `X-GitLab-Discussion-ID` | 注释所属的线程的 ID,用于注释的通知电子邮件中. |
| `X-GitLab-Pipeline-Id` | 通知所针对的管道的 ID,在管道的通知电子邮件中. |
| `X-GitLab-Reply-Key` | 支持通过电子邮件回复的唯一令牌. |
| `X-GitLab-NotificationReason` | 通知原因. 可以`mentioned``assigned``own_activity` . |
| `List-Id` | The path of the project in an RFC 2919 mailing list identifier. This is useful for email organization with filters, for example. |
| `X-GitLab-Group-Id` | 组的 ID,仅在史诗的通知电子邮件中显示 |
| `X-GitLab-Group-Path` | 组的路径,仅在史诗的通知电子邮件中显示 |
| `X-GitLab-Project` | 通知所属的项目的名称 |
| `X-GitLab-Project-Id` | 项目的 ID |
| `X-GitLab-Project-Path` | 项目的路径 |
| `X-GitLab-(Resource)-ID` | 通知所针对的资源的 ID,该资源例如可以是`Issue``MergeRequest``Commit`或其他此类资源 |
| `X-GitLab-Discussion-ID` | 注释所属的线程的 ID,用于注释的通知电子邮件中 |
| `X-GitLab-Pipeline-Id` | 通知所针对的管道的 ID,在管道的通知电子邮件中.|
| `X-GitLab-Reply-Key` | 支持通过电子邮件回复的唯一令牌 |
| `X-GitLab-NotificationReason` | 通知原因. 可以`mentioned``assigned``own_activity` |
| `List-Id` | The path of the project in an RFC 2919 mailing list identifier. This is useful for email organization with filters, for example |
### X-GitLab-NotificationReason[](#x-gitlab-notificationreason "Permalink")
`X-GitLab-NotificationReason`标头包含`X-GitLab-NotificationReason`的原因. 该值是按优先级顺序的以下值之一:
`X-GitLab-NotificationReason`标头包含`X-GitLab-NotificationReason`的原因该值是按优先级顺序的以下值之一:
* `own_activity`
* `assigned`
* `mentioned`
通知的原因也包含在通知电子邮件的页脚中. 例如有原因的电子邮件`assigned`都会有这句话的注脚:
通知的原因也包含在通知电子邮件的页脚中 例如有原因的电子邮件`assigned`都会有这句话的注脚:
* `You are receiving this email because you have been assigned an item on <configured GitLab hostname>.`
**注意:**正在考虑将其他事件的通知包含在`X-GitLab-NotificationReason`标头中. 有关详细信息,请参见此[相关问题](https://gitlab.com/gitlab-org/gitlab/-/issues/20689) .
\ No newline at end of file
**注意:**正在考虑将其他事件的通知包含在`X-GitLab-NotificationReason`标头中,有关详细信息,请参见此[相关问题](https://gitlab.com/gitlab-org/gitlab/-/issues/20689)
\ No newline at end of file
# 登录日志[](#登录日志 "Permalink")
# 登录日志[](#logs "Permalink")
在 GitLab 10.8 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17867) .
CODEChina 列出了已登录到您帐户的所有设备,这使您可以查看会话,并撤销所有您不认识的会话。
GitLab 列出了已登录到您帐户的所有设备. 这使您可以查看会话,并撤销所有您不认识的会话.
## 列出所有活动会话[](#listing-all-active-sessions "Permalink")
## Listing all active sessions[](#listing-all-active-sessions "Permalink")
1. 单击您的头像
2. 单击 **设置**
3. 点击边栏中的**活动会话**
1. 单击您的头像.
2. Select **Settings**.
3. 点击边栏中的**活动会话** .
## 活动会话限制[](#active-sessions-limit "Permalink")
[![Active sessions list](img/2d1845503f8ff90d4dc71459313e4e62.png)](img/active_sessions_list.png)
CODEChina 允许用户一次拥有多达 100 个活动会话,如果活动会话数超过 100,则最早的会话将被删除。
## Active sessions limit[](#active-sessions-limit "Permalink")
## 撤消一个会话[](#revoking-a-session "Permalink")
在 GitLab 12.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/31611) .
GitLab 允许用户一次拥有多达 100 个活动会话. 如果活动会话数超过 100,则最早的会话将被删除.
## Revoking a session[](#revoking-a-session "Permalink")
1. 使用前面的步骤导航到" **活动会话"** .
2. 单击除会话外的**撤消** . 当前会话无法撤消,因为这将使您退出 GitLab.
\ No newline at end of file
1. 使用前面的步骤导航到" **活动会话"**
2. 单击除会话外的**撤消**,当前会话无法撤消,因为这将使您退出 CODEChina。
\ No newline at end of file
# 个人访问令牌[](#个人访问令牌 "Permalink")
版本历史
* 在 GitLab 8.8 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/3749) .
* 在 GitLab 12.6 中添加了[有关令牌过期的通知](https://gitlab.com/gitlab-org/gitlab/-/issues/3649) .
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 12.6 中添加了[令牌生存期限制](https://gitlab.com/gitlab-org/gitlab/-/issues/3649) .
If you’re unable to use [OAuth2](../../api/oauth2.html), you can use a personal access token to authenticate with the [GitLab API](../../api/README.html#personalproject-access-tokens).
您还可以将个人访问令牌与 Git 一起使用,以通过 HTTP 或 SSH 进行身份验证. 启用[两因素身份验证(2FA)](../account/two_factor_authentication.html)时,需要个人访问令牌. 在这两种情况下,都可以使用令牌代替密码进行身份验证.
个人访问令牌在您定义的日期 UTC 午夜到期.
* GitLab 每天在世界标准时间 01:00 AM 进行检查,以识别将在 7 天内到期的个人访问令牌. 这些令牌的所有者通过电子邮件通知.
* 在 GitLab Ultimate 中,管理员可以[限制个人访问令牌的寿命](../admin_area/settings/account_and_limit_settings.html#limiting-lifetime-of-personal-access-tokens-ultimate-only) .
* 在 GitLab Ultimate 中,管理员可以[切换个人访问令牌到期的执行](../admin_area/settings/account_and_limit_settings.html#optional-enforcement-of-personal-access-token-expiry-ultimate-only) .
有关如何使用个人访问令牌向 API 进行身份验证的示例,请参见[API 文档中](../../api/README.html#personalproject-access-tokens)的以下部分.
GitLab 还提供了[模拟令牌](../../api/README.html#impersonation-tokens) ,这些[令牌](../../api/README.html#impersonation-tokens)是管理员通过 API 创建的. 它们非常适合作为特定用户的自动身份验证.
## Creating a personal access token[](#creating-a-personal-access-token "Permalink")
您可以在 GitLab 个人资料中创建任意数量的个人访问令牌.
1. 登录到 GitLab.
2. 点击右上角的头像,然后选择**设置** .
3. 在" **用户设置"**菜单上,选择" **访问令牌"** .
4. 选择令牌的名称和可选的到期日期.
5. 选择[所需的范围](#limiting-scopes-of-a-personal-access-token) .
6. 单击**创建个人访问令牌**按钮.
7. 将个人访问令牌保存在安全的地方. 离开或刷新页面后,将无法再次访问它.
### Revoking a personal access token[](#revoking-a-personal-access-token "Permalink")
您可以随时单击" **活动个人访问令牌"**区域下的相应" **撤消"**按钮来撤消任何个人访问令牌.
### Token activity[](#token-activity "Permalink")
您可以从" **个人访问令牌"**页面**查看**上次使用**令牌的时间** . 令牌使用情况的更新每 24 小时固定一次. 对[API 资源](../../api/api_resources.html)[GraphQL API 的](../../api/graphql/index.html)请求将更新令牌的用法.
## Limiting scopes of a personal access token[](#limiting-scopes-of-a-personal-access-token "Permalink")
可以使用一个或多个范围创建个人访问令牌,这些范围允许给定令牌可以执行各种操作. 下表描述了可用范围.
| Scope | 引入 | Description |
| --- | --- | --- |
| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 允许访问`/users`下的只读端点. 本质上,允许[用户 API](../../api/users.html)中的任何`GET`请求. |
| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 授予对 API 的完全读写访问权限,包括所有组和项目,容器注册表和程序包注册表. |
| `read_api` | [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28944) | 授予对 API 的读取权限,包括所有组和项目,容器注册表和程序包注册表. |
| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11845) | 如果项目是私有的并且需要授权,则允许读取(拉出) [容器注册表](../packages/container_registry/index.html)图像. |
| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14838) | 允许以系统中的任何用户身份执行 API 操作(如果经过身份验证的用户是管理员). |
| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17894) | 允许通过`git clone`对存储库进行只读访问(拉). |
| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26021) | 允许通过`git clone`对存储库进行读写访问(拉,推). 启用 2FA 时,通过 HTTP 访问 Git 存储库是必需的. |
## Programmatically creating a personal access token[](#programmatically-creating-a-personal-access-token "Permalink")
您可以以编程方式创建预定的个人访问令牌,以用于自动化或测试. 您将需要足够的访问权限才能为 GitLab 实例运行[Rails 控制台会话](../../administration/troubleshooting/debug.html#starting-a-rails-console-session) .
要使用用户名`automation-bot`创建属于用户的令牌,请在 Rails 控制台( `sudo gitlab-rails console` )中运行以下`sudo gitlab-rails console`
```
user = User.find_by_username('automation-bot')
token = user.personal_access_tokens.create(scopes: [:read_user, :read_repository], name: 'Automation token')
token.set_token('token-string-here123')
token.save!
```
使用[GitLab Rails Runner](../../administration/troubleshooting/debug.html#using-the-rails-runner)可以将其简化为单行 shell 命令:
```
sudo gitlab-rails runner "token = User.find_by_username('automation-bot').personal_access_tokens.create(scopes: [:read_user, :read_repository], name: 'Automation token'); token.set_token('token-string-here123'); token.save!"
```
**注意:**令牌字符串的长度必须为 20 个字符,否则将不会被识别为个人访问令牌.
有效范围的列表及其作用可以[在源代码中](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/auth.rb)找到.
## Programmatically revoking a personal access token[](#programmatically-revoking-a-personal-access-token "Permalink")
您可以通过编程方式撤消个人访问令牌. 您将需要足够的访问权限才能为 GitLab 实例运行[Rails 控制台会话](../../administration/troubleshooting/debug.html#starting-a-rails-console-session) .
要撤销已知令牌`token-string-here123` ,请在 Rails 控制台( `sudo gitlab-rails console` )中运行以下`sudo gitlab-rails console`
```
token = PersonalAccessToken.find_by_token('token-string-here123')
token.revoke!
```
可以使用[GitLab Rails Runner](../../administration/troubleshooting/debug.html#using-the-rails-runner)将其[简化](../../administration/troubleshooting/debug.html#using-the-rails-runner)为单行 shell 命令:
```
sudo gitlab-rails runner "PersonalAccessToken.find_by_token('token-string-here123').revoke!"
```
\ No newline at end of file
......@@ -10,9 +10,9 @@
除了标准的评论形式外,您还可以选择以话题讨论的方式创建评论, 收到回复后,评论也将是[话题讨论](#start-a-thread-by-replying-to-a-standard-comment) 的形式。
评论区域支持[Markdown](../markdown.html)[快速操作](../project/quick_actions.html) , 您可以随时编辑自己的评论,拥有" [maintainer"](../permissions.html)或更高[权限的](../permissions.html)用户也可以编辑其他人的评论。
评论区域支持[Markdown](/docs/user/markdown.md)[快速操作](/docs/user/project/quick-actions.md) , 您可以随时编辑自己的评论,拥有" [maintainer"](/docs/user/permissions.md)或更高权限的用户也可以编辑其他人的评论。
您还可以通过回复评论通知电子邮件来回复评论,回复标准评论会创建另一个标准评论。回复主题评论会在主题中创建回复,电子邮件回复支持[Markdown](../markdown.html)[快速操作](../project/quick_actions.html)
您还可以通过回复评论通知电子邮件来回复评论,回复标准评论会创建另一个标准评论。回复主题评论会在主题中创建回复,电子邮件回复支持[Markdown](/docs/user/markdown.md)[快速操作](/docs/user/project/quick-actions.md)
**注意:**每个对象最多只能有 5,000 条评论,例如:issue,epic 及合并请求。
......@@ -37,7 +37,7 @@
2. 进入选定的提交,单击" **更改"**选项卡(在该选项卡中,将仅显示与所选提交不同的内容),并提交评论
[![Commit diff discussion in merge request context](/../../docs/img/commit_comment_mr_context.png)](img/commit_comment_mr_context.png)
[![Commit diff discussion in merge request context](/docs/img/commit_comment_mr_context.png)](/docs/img/commit_comment_mr_context.png)
3. 以这种方式创建的任何讨论都将显示在合并请求的"**讨论"**选项卡中,并且可以解决
......@@ -58,17 +58,17 @@
您可以通过单击**讨论**底部的" **解决讨论"**按钮将其标记为已解决。
[!["Resolve thread" button](/../../docs/img/resolve_thread_button.png)](img/resolve_thread_button.png)
[!["Resolve thread" button](/docs/img/resolve_thread_button.png)](/docs/img/resolve_thread_button.png)
或者,您可以将每个评论单独标记为已解决。
[!["Resolve comment" button](/../../docs/img/resolve_comment_button.png)](img/resolve_comment_button.png)
[!["Resolve comment" button](/docs/img/resolve_comment_button.png)](/docs/img/resolve_comment_button.png)
### 在合并请求中所有未解决讨论转为 Issue[](#move-all-unresolved-threads-in-a-merge-request-to-an-issue "Permalink")
要在新 Issue 中解决当前自合并请求中的所有未解决的讨论时,可以单击" **再新问题中解决所有讨论"**的按钮。
[![Open new issue for all unresolved threads](/../../docs/img/btn_new_issue_for_all_threads.png)](img/btn_new_issue_for_all_threads.png)
[![Open new issue for all unresolved threads](/docs/img/btn_new_issue_for_all_threads.png)](/docs/img/btn_new_issue_for_all_threads.png)
或者,当您的项目仅[在解决所有讨论](#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved)后才接受合并请求[](#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved) ,在合并请求部件中会有一个创建一个新 Issue 以便稍后解决的选项。
......@@ -95,7 +95,7 @@
导航到您的项目的设置页面,选中" **使用推送更改的行上****自动解析合并请求差异线程"**复选框,然后单击" **保存"**以使更改生效.
[![Automatically resolve merge request diff threads when they become outdated](img/a283d966822ac6a760d1a650273fbb3b.png)](img/automatically_resolve_outdated_discussions.png)
[![Automatically resolve merge request diff threads when they become outdated](/docs/img/a283d966822ac6a760d1a650273fbb3b.png)](/docs/img/automatically_resolve_outdated_discussions.png)
从现在开始,如果推送使 diff 部分过时,默认情况下将解决 diff 上的所有线程. 不变的线上线程和顶级可解析线程不会自动解析.
......@@ -146,6 +146,6 @@
* **完成审阅** :提交**审阅中的**所有评论,使其他用户可以看到它们
* **立即添加评论** :提交常规评论,而不是审阅的一部分
您可以在评论中使用[快速操作](../project/quick_actions.html)评论也将会显示提交评论后即将执行的操作。
您可以在评论中使用[快速操作](/docs/user/project/quick-actions.md)评论也将会显示提交评论后即将执行的操作。
要向评论添加更多评论,请照常开始写评论,然后单击**添加到评论**按钮,这会将评论添加到评论中。
......@@ -470,7 +470,7 @@ Second section content.
### Embedding metrics in GitLab Flavored Markdown[](#embedding-metrics-in-gitlab-flavored-markdown "Permalink")
公制图表可以嵌入到 GitLab 风味 Markdown 中。 有关更多详细信息,请参见[在 GitLab 风格的 Markdown 中嵌入度量标准](../user/project/integrations/prometheus.html#embedding-metric-charts-within-gitlab-flavored-markdown)
公制图表可以嵌入到 GitLab 风味 Markdown 中。 有关更多详细信息,请参见在 GitLab 风格的 Markdown 中嵌入度量标准
## Standard Markdown and extensions in GitLab[](#standard-markdown-and-extensions-in-gitlab "Permalink")
......@@ -1016,15 +1016,13 @@ while the equation for the theory of relativity is E = mc<sup>2</sup>.
#### 从电子表格中复制并粘贴到 Markdown[](#copy-from-spreadsheet-and-paste-in-markdown "Permalink")
在 GitLab 12.7 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/27205) .
如果您使用电子表格软件(例如 Microsoft Excel,Google 表格或 Apple Numbers),则可以从电子表格中进行复制,GitLab 会将其粘贴为 Markdown 表格。例如,假设您具有以下电子表格:
[![Copy from spreadsheet](/../../docs/img/markdown_copy_from_spreadsheet_v12_7.png)](img/markdown_copy_from_spreadsheet_v12_7.png)
[![Copy from spreadsheet](/docs/img/markdown_copy_from_spreadsheet_v12_7.png)](/docs/img/markdown_copy_from_spreadsheet_v12_7.png)
选择单元格并将其复制到剪贴板,打开一个 Markdown 并粘贴电子表格:
[![Paste to Markdown table](/../../docs/img/markdown_paste_table_v12_7.png)](img/markdown_paste_table_v12_7.png)
[![Paste to Markdown table](/docs/img/markdown_paste_table_v12_7.png)](/docs/img/markdown_paste_table_v12_7.png)
## 引用[](#references "Permalink")
......
......@@ -5,12 +5,10 @@
* 将相关项目组装在一起
* 授予成员一次访问多个项目的权限
组也可以嵌套在[子组织中](subgroups/index.html)
组也可以嵌套在[子组织中](/docs/user/org/sub_org.md)
通过单击顶部导航中的**组织>您的组织**来找到您的组织。
[![GitLab Groups](img/53bcd8c2d2c69aceb7db6677802be6b1.png)](img/groups.png)
**"组织"**页面显示:
* 选择**您的组织**后, 将会显示**您**所属的全部组织(包括子组织)
......@@ -31,7 +29,7 @@
* 通过在同一[命名空间](#命名空间)下组织相关项目并将成员添加到顶级组,可以以较少的步骤授予对多个项目和多个团队成员的访问权限。
* 通过创建小组并包括适当的成员,可以轻松地`@mention`所有团队中的问题并合并请求。
例如,您可以为公司成员创建一个[组织](subgroups/index.html) ,并为每个单独的团队创建一个[子组织](subgroups/index.html). 假设您创建了一个名为`company-team` ,并且在该组中为各个团队`backend-team``frontend-team``production-team`创建了子组。
例如,您可以为公司成员创建一个[组织](/docs/user/org/sub_org.md) ,并为每个单独的团队创建一个[子组织](/docs/user/org/sub_org.md). 假设您创建了一个名为`company-team` ,并且在该组中为各个团队`backend-team``frontend-team``production-team`创建了子组。
* 从问题开始新的实现时,请添加评论: *" `@company-team` ,让我们开始吧!* *`@company-team/backend-team`您很高兴!"*
* 当您的后端团队需要前端提供帮助时,他们会添加一条评论: *" `@company-team/frontend-team`您能在这里帮助我们吗?"*
......@@ -61,30 +59,24 @@
## 组织内的Issue及合并请求[](#组织内的Issue及合并请求 "Permalink")
Issue及合并请求是项目的一部分。对于组织,您可以在单个列表视图中查看所有[Issue](../project/issues/index.html#issues-list),也可以查看组织中所有项目的[请求合并](../project/merge_requests/reviewing_and_managing_merge_requests.html#view-merge-requests-for-all-projects-in-a-group)
Issue及合并请求是项目的一部分。对于组织,您可以在单个列表视图中查看所有[Issue](/docs/user/project/issues.md#issues-list),也可以查看组织中所有项目的请求合并
### 批量编辑Issue及合并请求[](#批量编辑Issue及合并请求 "Permalink")
有关详细信息,请参考[批量编辑Issue及合并请求](../group/bulk_editing/index.html)
有关详细信息,请参考[批量编辑Issue及合并请求](/docs/user/project/bulk-edit.md)
## 新建一个组织[](#新建一个组织 "Permalink")
> 有关不允许用作组名的单词列表,请参见[保留名称](../reserved_names.html) .
> 有关不允许用作组名的单词列表,请参见[保留名称](/docs/user/reserved.md) 。
通过以下方式,您可以创建一个新的组织:
* 在顶部菜单中,依次单击" **组织"**和" **您的组织"** ,然后单击绿色按钮" **新建组织"**
[![new group from groups page](img/7e5039b0d8fb74c5ea813e354f23493e.png)](img/new_group_from_groups.png)
* 或者,在顶部菜单中,展开`+`号并选择**新建组织**
[![new group from elsewhere](img/ee8ead7652026dd03a75e2551122350f.png)](img/new_group_from_other_pages.png)
添加以下信息:
[![new group information](img/ad2cdacdd36348cddf7d5c19d8940d5b.png)](img/create_new_group_info.png)
1. **组织名称**将自动填充 URL(自动填充不支持中文的组织名称)。(可选)您可以修改它,这是在组视图中显示的名称,该名称只能包含:
* 字母数字字符
* 中文
......@@ -97,7 +89,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
* 连接符`-`和点(不能以连接符`-`开头或以点结尾)
3. (可选)可以为新建的组织添加一段简单介绍,以便其他用户了解该组织
4. (可选)可以为新建的组织上传一个头像
5. 选择新建的组织 [是否公开可见](../../public_access/public_access.html)
5. 选择新建的组织是否公开可见
## 为组织添加一个用户[](#为组织添加一个用户 "Permalink")
......@@ -106,9 +98,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
**组织设置-组织成员设置**中将成员添加到组织,可以通过用户名或者注册邮箱来添加组织成员。
[![add members to group](img/ece990045e1a7ae1237b5f2912a2df3e.png)](img/add_new_members.png)
选择[权限级别](../permissions.html#permissions) ,然后添加新成员。您还可以设置该用户的到期日期。
选择[权限级别](/docs/user/permissions.md#permissions) ,然后添加新成员。您还可以设置该用户的到期日期。
假设一个有两个项目的组织:
......@@ -123,22 +113,16 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
如果组织启用了该设置,则非组织成员用户可以请求成为组织的成员。在您要加入的组织页中,单击组织名称后面的**申请权限**按钮即可。
[![Request access button](img/aa2dd1694d7e1573bbd49200ed1ccb04.png)](img/request_access_button.png)
申请访问权限后:
* 通过电子邮件将您的申请告知给组织的所有者(电子邮件将发送给最近活跃的组织所有者)
* 任何组织所有者都可以在组组织成员设置页面上批准或拒绝您的申请
[![Manage access requests](img/fd0991d7941fed77c4d82bd219ec713b.png)](img/access_requests_management.png)
如果您在申请权限被批准之前改变了主意,只需单击" **撤回访问请求"**按钮即可。
[![Withdraw access request button](img/a6d5e94df0d5d50038a0909603d69933.png)](img/withdraw_access_request_button.png)
## 变更组织的所有者[](#变更组织的所有者 "Permalink")
组织的所有关系是指至少有一个组织成员拥有组织的 [所有者权限](../permissions.html#group-members-permissions),一个组织至少需要一名所有者。
组织的所有关系是指至少有一个组织成员拥有组织的 [ Owner ](/docs/user/permissions.md#group-members-permissions),一个组织至少需要一名所有者。
只有拥有一个所有者的组织可以变更组织的所有者。 可以通过以下方式变更组织唯一所有者:
......@@ -148,7 +132,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
## 移除组织成员[](#移除组织成员 "Permalink")
只有[拥有所有者](../permissions.html#group-members-permissions)权限的[用户](../permissions.html#group-members-permissions)才能管理组织成员。
只有[ Owner ](/docs/user/permissions.md#group-members-permissions)权限的[用户](/docs/user/permissions.md#group-members-permissions)才能管理组织成员。
如果要移除的成员在该组中具有直接成员资格,则可以从该组织中移除该成员; 如果成员资格是从父组继承的,则该成员只能从父组中进行移除。
......@@ -179,17 +163,12 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
有两种方法可以在组织中新建项目:
* 选择一个组,单击**新建项目**按钮 。 然后,您可以继续[创建您的项目](../../basics/create-project.html) .
[![New project](img/ef67d77909a856277f9f2821fa0c18ea.png)](img/create_new_project_from_group.png)
* 选择一个组,单击**新建项目**按钮 。 然后,您可以继续[创建您的项目](/docs/basic/create-project.md)
* 在创建项目时,从下拉菜单中选择已经创建的组名称空间
[![Select group](img/674c1579957cca4a644bc90fb8fbb2f3.png)](img/select_group_dropdown.png)
### 项目创建权限[](#项目创建权限 "Permalink")
默认情况下, [开发人员和维护人员](../permissions.html#group-members-permissions)可以在一个组下创建项目。
默认情况下, [开发人员和维护人员](/docs/user/permissions.md#group-members-permissions)可以在一个组下创建项目。
可以通过以下操作为特定组更改此项设置:
......@@ -207,14 +186,9 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
* 组织已存档的项目
* 组织的成员
## 将项目移到组织中[](#将项目移到组织中 "Permalink")
了解如何[将项目转移到组织中](../project/settings/index.html#transferring-an-existing-project-into-another-namespace) .
## 与组织共享一个项目[](#与组织共享一个项目 "Permalink")
您可以[与组织共享您的项目](../project/members/share_project_with_groups.html),并向所有组织成员立即授予对该项目的访问权限。
您可以[与组织共享您的项目](/docs/user/project/member/share.md),并向所有组织成员立即授予对该项目的访问权限。
或者,您可以[锁定与组织共享功能](#锁定与组织共享功能)
......@@ -242,7 +216,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
转移组织时,请注意:
* 更改组织的父组织可能会产生一些副作用,具体的请参阅[更改存储库路径时的重定向](../project/index.html#redirects-when-changing-repository-paths)
* 更改组织的父组织可能会产生一些副作用,具体的请参阅[更改存储库路径时的重定向](/docs/user/project.md#redirects-when-changing-repository-paths)
* 您只能将组织/子组织转移到您管理的组织/子组织中;
* 您必须手动更新本地存储库以指向新位置;
* 如果将要转移的父组织的公开可见性设置低于当前父组织,那么待转移组织机器项目的公开可见性将会与即将要转移到的父组织保持一致;
......@@ -251,9 +225,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
## 组织设置[](#组织设置 "Permalink")
创建组织后,在组织详情页您可以进入**组织设置**来对组织进行设置及管理:
[![group settings](img/b98f1bb6205ce5c692946b81e8c78003.png)](img/group_settings.png)
创建组织后,在组织详情页您可以进入**组织设置**来对组织进行设置及管理。
### 常规设置[](#常规设置 "Permalink")
......@@ -261,7 +233,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
#### 变更组织的路径[](#变更组织的路径 "Permalink")
变更组织的路径也可能会产生一些副作用,具体的请参考[重定向的行为](../project/index.html#redirects-when-changing-repository-paths)
变更组织的路径也可能会产生一些副作用,具体的请参考[重定向的行为](/docs/user/project.md#redirects-when-changing-repository-paths)
如果您要腾出路径,以便其他组织或用户可以使用该路径,由于名称和路径都必须是唯一的,因此您在变更路径的同时也可能需要重命名该组织。
......@@ -272,7 +244,7 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
3.**更改组织路径**下输入新的路径
4. 点击 **变更组织路径**
> **注意:**如果命名空间包含带有[Container Registry](../packages/container_registry/index.html)标记的项目,则无法重命名该空间,因为该项目无法移动。
> **注意:**如果命名空间包含带有 Container Registry 标记的项目,则无法重命名该空间,因为该项目无法移动。
> **提示:**如果要保留对原始名称空间的所有权并保护 URL 重定向,我们建议您新建一个群组并向其转移项目,而无需更改组织的路径或重命名用户名。
......@@ -299,14 +271,12 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
#### 锁定与组织共享功能[](#锁定与组织共享功能 "Permalink")
该功能可防止一个组织中的[项目与另一个组共享项目](../project/members/share_project_with_groups.html),以便对项目访问进行更严格的控制。
该功能可防止一个组织中的[项目与另一个组共享项目](/docs/user/project/member/share.md),以便对项目访问进行更严格的控制。
例如,假设您有两个不同的团队(A 组和 B 组)在一个项目中一起工作,并且要继承该组成员身份,您可以在 A 组和 B 组之间设置共享项目。**使用组锁共享**可以防止其中的任何项目群组与其他群组共享,从而确保只有合适的群组成员才能访问这些项目。
要启用此功能,请打开组织设置页面, 选择 **禁止与其他组织共享项目**并点击**保存修改**
[![Checkbox for share with group lock](img/788efc08015bf62f608d47f16b49b4d7.png)](img/share_with_group_lock.png)
#### 禁用电子邮件通知[](#禁用电子邮件通知 "Permalink")
您可以禁用与该组织相关的所有电子邮件通知,其中包括其子组织和项目:
......@@ -332,4 +302,4 @@ Issue及合并请求是项目的一部分。对于组织,您可以在单个列
### 高级设置[](#高级设置 "Permalink")
* **项目** :查看该组中的所有项目,将成员添加到每个项目,访问每个项目的设置,以及删除任何项目,所有操作均在同一屏幕上进行
* **Webhooks** :为您的组配置[webhooks](../project/integrations/webhooks.html)
\ No newline at end of file
* **Webhooks** :为您的组配置 webhooks
\ No newline at end of file
......@@ -6,9 +6,9 @@
* **独立的子组织** 由于每个组都有自己的可见性级别,因此您可以在同一保护范围内创建不同子组织以满足您不同的使用目的;
* **组织大型项目** 对于大型项目,子组织可能会更容易分隔源代码的权限
* **使管理人员和控制可见性变得更加容易** 根据人们的组织[成员身份](#成员身份)赋予他们不同的[权限](../../permissions.html#group-members-permissions)
* **使管理人员和控制可见性变得更加容易** 根据人们的组织[成员身份](#成员身份)赋予他们不同的[权限](/docs/user/permissions.md#group-members-permissions)
有关组织和项目中允许的权限的更多信息,请参考[可见性级别](../../../development/permissions.html#general-permissions)
有关组织和项目中允许的权限的更多信息,请参考[可见性级别](/docs/user/permissions.md#general-permissions)
## 概览[](#概览 "Permalink")
......@@ -41,20 +41,16 @@
要在组织中创建子组织,您必须是该组织的所有者或维护者,具体取决于该组织的设置(默认情况下,允许所有者和维护者创建子组)。
有关权限的更多信息,请检查[权限表](../../permissions.html#group-members-permissions) 。有关不允许用作组名的单词列表,请参见[保留名称](../../reserved_names.html) .
有关权限的更多信息,请检查[权限表](/docs/user/permissions.md) 。有关不允许用作组名的单词列表,请参见[保留名称](/docs/user/reserved.md)
如果用户明确地作为所有者(或维护者,如果启用了此设置)被添加到父组织中,则用户始终可以创建子组,即使管理员在其组织设置中禁用了组创建也是如此。
您可以通过以下操作创建一个子组织:
1. 在组织详情页中,展开右上角**新建项目**旁的下拉按钮,选择**新建子组织** ,然后单击 **新建子组**按钮;
[![Subgroups page](img/c3c27ff673c33bcd50004c2adb617d5f.png)](img/create_subgroup_button.png)
2. 像平常一样直接创建一个新组织。 需要注意的是,父组织名称空间在 **组路径**下是不可修改的,但 可见性级别可以与父组织不同;
[![Subgroups page](img/7fb24fed9f39dcdabb530523bcb8dc08.png)](img/create_new_group.png)
3. 单击**创建组织**按钮
......@@ -64,7 +60,7 @@
成员的组权限只能由所有者更改,您可以通过查看组织的**组织设置-组织成员设置**页面来确定成员是否从父组织继承了权限。
[![Group members page](img/e18ff80d06980688066f9ec9404bd2da.png)](img/group_members.png)
[![Group members page](/docs/img/group_members.png)](/docs/img/group_members.png)
从上图我们可以了解到:
......@@ -77,13 +73,9 @@
您可以使用右侧的下拉列表过滤此列表:
[![Group members filter](img/8215c374294289cd2bd24399439403fd.png)](img/group_members_filter_v12_6.png)
* **仅显示直接成员**仅显示 Administrator 和 User3,因为这是属于`four`组的唯一用户
* **仅显示继承的成员**将显示 User0,User1 和 User2,无论层次结构上方的哪个组都可以作为继承权限的来源
## 提及子组织[](#提及子组织 "Permalink")
在Issue,提交和合并请求中提及组织( `@group` )将通知该组的所有成员。当有了子组织后,如果您想拆分组织的结构,将有更精细的支持。提及方式与以前一样,您可以选择要通知的人群.
[![Mentioning subgroups](img/0d1089161431c5f21751458027d84535.png)](img/mention_subgroups.png)
在Issue,提交和合并请求中提及组织( `@group` )将通知该组的所有成员。当有了子组织后,如果您想拆分组织的结构,将有更精细的支持。提及方式与以前一样,您可以选择要通知的人群。
\ No newline at end of file
......@@ -8,13 +8,13 @@
* 留言
* 克隆或下载项目代码
当成员离开团队的项目时,所有分配给他的" [Issue"](project/issues/index.html)及" [合并请求"](project/merge_requests/index.html)将自动取消分配。
当成员离开团队的项目时,所有分配给他的" [Issue"](/docs/user/project/issues.md)及" [合并请求"](/docs/user/project/merge-request.md)将自动取消分配。
要添加或导入用户,可以遵循[项目成员文档](project/members/index.html)
要添加或导入用户,可以遵循[项目成员文档](/docs/user/project/member.md)
## 项目成员权限[](#project-members-permissions "Permalink")
虽然 Maintainer 是项目级别的最高角色,但是某些操作只能由拥有命名空间所有权限的用户或组的 Owner执行。 有关更多信息,请参阅[项目成员文档](project/members/index.html) .
虽然 Maintainer 是项目级别的最高角色,但是某些操作只能由拥有命名空间所有权限的用户或组的 Owner执行。 有关更多信息,请参阅[项目成员文档](/docs/user/project/member.md)
下表描述了项目中的各种用户权限级别:
......@@ -56,10 +56,10 @@
| 查看错误跟踪列表 |   | ✓ | ✓ | ✓ | ✓ |
| 创建新的合并请求 |   | ✓ | ✓ | ✓ | ✓ |
| 查看指标仪表板注释 |   | ✓ | ✓ | ✓ | ✓ |
| Pull [packages](packages/index.html) |   | ✓ | ✓ | ✓ | ✓ |
| Publish [packages](packages/index.html) |   |   | ✓ | ✓ | ✓ |
| Upload [Design Management](project/issues/design_management.html) files |   |   | ✓ | ✓ | ✓ |
| Create/edit/delete [Releases](project/releases/index.html) |   |   | ✓ | ✓ | ✓ |
| Pull packages |   | ✓ | ✓ | ✓ | ✓ |
| Publish packages |   |   | ✓ | ✓ | ✓ |
| Upload Design Management files |   |   | ✓ | ✓ | ✓ |
| Create/edit/delete [Releases](/docs/user/project/releases.md) |   |   | ✓ | ✓ | ✓ |
| 创建新分支 |   |   | ✓ | ✓ | ✓ |
| 推送到不受保护的分支 |   |   | ✓ | ✓ | ✓ |
| 强制推送到不受保护的分支 |   |   | ✓ | ✓ | ✓ |
......@@ -105,7 +105,7 @@
| 管理错误跟踪 |   |   |   | ✓ | ✓ |
| 删除维基页面 |   |   |   | ✓ | ✓ |
| 查看项目审核事件 |   |   |   | ✓ | ✓ |
| Manage [push rules](../push_rules/push_rules.html) |   |   |   | ✓ | ✓ |
| Manage push rules |   |   |   | ✓ | ✓ |
| 更改项目可见性 |   |   |   |   | ✓ |
| 将项目转移到另一个名称空间 |   |   |   |   | ✓ |
| 重命名项目 |   |   |   |   | ✓ |
......@@ -131,9 +131,9 @@
2. Guest 用户只能查看他们自己创建的机密问题
3. 不允许 Guest,Reporter,Developer,Maintainer 或 Owner 使用,请参阅受保护的分支
4. 如果分支收到保护 ,则取决于授予开发人员和维护人员的权限
5. Guest 用户可以访问 项目的 [**Release**](project/releases/index.html)来下载资源,但不能下载源代码,也不能查看代码仓库信息(例如标签和提交)
5. Guest 用户可以访问 项目的 [**Release**](/docs/user/project/releases.md)来下载资源,但不能下载源代码,也不能查看代码仓库信息(例如标签和提交)
6. 操作仅限于用户拥有(引用)的记录​​
7. 启用" [共享组锁定"后](./group/index.html#share-with-group-lock) ,该项目将无法与其他组共享,它不影响具有组共享的组
7. 启用" [共享组锁定"后](/docs/user/org.md#share-with-group-lock) ,该项目将无法与其他组共享,它不影响具有组共享的组
## 项目功能权限[](#project-features-permissions "Permalink")
......@@ -156,7 +156,7 @@
### 机密 Issue 权限[](#confidential-issues-permissions "Permalink")
报告者和更高的权限级别以及创建机密问题的来宾用户都可以访问机密问题. 要了解更多信息,请通读有关[权限和访问机密问题](project/issues/confidential_issues.html#permissions-and-access-to-confidential-issues)的文档.
报告者和更高的权限级别以及创建机密问题的来宾用户都可以访问机密问题. 要了解更多信息,请通读有关[权限和访问机密问题](/docs/user/project/issues/confidential.md#permissions-and-access-to-confidential-issues)的文档.
## 组织成员权限[](#group-members-permissions "Permalink")
......@@ -167,8 +167,8 @@
| 浏览组 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 管理群组标记 |   | ✓ | ✓ | ✓ | ✓ |
| 管理群组里程碑 |   | ✓ | ✓ | ✓ | ✓ |
| Pull [packages](packages/index.html) |   | ✓ | ✓ | ✓ | ✓ |
| Publish [packages](packages/index.html) |   |   | ✓ | ✓ | ✓ |
| Pull packages |   | ✓ | ✓ | ✓ | ✓ |
| Publish packages |   |   | ✓ | ✓ | ✓ |
| 查看指标仪表板注释 |   | ✓ | ✓ | ✓ | ✓ |
| 分组创建项目 |   |   | ✓ (3) | ✓ (3) | ✓ (3) |
| 与群组分享(邀请)群组 |   |   |   |   | ✓ |
......
# 个人偏好[](#个人偏好 "Permalink")
用户的个人资料首选项页面允许用户自定义 GitLab 的各个方面.
用户的个人资料首选项页面允许用户自定义 CODEChina 的各个方面,可以通过以下步骤进行设置:
要导航至个人资料的首选项,请执行以下操作:
1. 单击您的头像
2. 点击"设置"
3. 单击边栏中的**首选项**
1. 单击您的头像.
2. Select **Settings**.
3. 单击边栏中的**首选项** .
## 语法高亮主题[](#syntax-highlighting-theme "Permalink")
## Navigation theme[](#navigation-theme "Permalink")
**注意:** CODEChina 使用[rouge Ruby 库](http://rouge.jneen.net/)在任何 Editor 上下文之外突出显示语法,WebIDE(如代码片段)使用[Monaco Editor](https://microsoft.github.io/monaco-editor/) ,并提供了[Monarch](https://microsoft.github.io/monaco-editor/monarch.html)库以突出显示语法,有关支持的语言的列表,请访问相应库的文档。
GitLab 导航主题设置可让您个性化 GitLab 体验. 您可以从多个颜色主题中进行选择,这些主题可以为顶部导航和左侧导航添加独特的颜色. 使用单独的颜色主题可以帮助您区分不同的 GitLab 实例.
默认主题为 Indigo. 您可以选择 10 个主题:
* Indigo
* 浅靛蓝
* Blue
* 浅蓝
* Green
* 浅绿色
* Red
* 红灯
* Dark
* Light
[![Profile preferences navigation themes](img/c6c38f70c273cc4412f6d3bd29af3829.png)](img/profil-preferences-navigation-theme.png)
## Dark mode[](#dark-mode "Permalink")
[介绍](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28252)在 GitLab 13.1 作为一个 alpha 版本.
manbetx 客户端打不开已经开始在黑暗模式下工作! 深色[版本](https://about.gitlab.com/handbook/product/#alpha)[Alpha 版本](https://about.gitlab.com/handbook/product/#alpha)本着迭代的精神和[Alpha 版本](https://about.gitlab.com/handbook/product/#alpha)的较低期望提供.
[黑暗主题史诗中](https://gitlab.com/groups/gitlab-org/-/epics/2902)追踪了黑暗模式的进展. 见史诗:
* 已知问题列表.
* 我们计划的方向和下一步.
如果发现未列出的问题,请在史诗上发表评论或创建新的问题.
出于 MVC 和兼容性原因,暗模式可用作导航主题. 将来,我们计划使其在自己的部分中可配置,同时支持[不同的导航主题](https://gitlab.com/gitlab-org/gitlab/-/issues/219512) .
**注意:**深色主题当前仅适用于"深色"语法突出显示.
## Syntax highlighting theme[](#syntax-highlighting-theme "Permalink")
**注意:** GitLab 使用[rouge Ruby 库](http://rouge.jneen.net/ "胭脂网站")在任何 Editor 上下文之外突出显示语法. WebIDE(如代码片段)使用[Monaco Editor](https://microsoft.github.io/monaco-editor/) ,并提供了[Monarch](https://microsoft.github.io/monaco-editor/monarch.html)库以突出显示语法. 有关支持的语言的列表,请访问相应库的文档.
更改此设置可让您在 GitLab 上查看语法突出显示的代码时自定义颜色主题.
更改此设置可让您在 CODEChina 上查看语法突出显示的代码时自定义颜色主题。
默认语法主题为"白色",您可以在 5 个不同的主题中进行选择:
......@@ -58,23 +20,19 @@ manbetx 客户端打不开已经开始在黑暗模式下工作! 深色[版本]
* 日光暗
* Monokai
[![Profile preferences syntax highlighting themes](img/bde796b0c195045db9849eef2842bd0e.png)](img/profile-preferences-syntax-themes.png)
您在 13.0 中[引入](https://gitlab.com/groups/gitlab-org/-/epics/2389)的主题也适用于[Web IDE](../project/web_ide/index.html)的代码编辑器和[Snippets](../snippets.html) . 主题仅在 Web IDE 文件编辑器中可用, [深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/209808)[日光化深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/219228)除外,它们适用于整个 Web IDE 屏幕.
## 个性化[](#behavior "Permalink")
## Behavior[](#behavior "Permalink")
以下设置可让您自定义 CODEChina 布局的行为以及仪表板和项目登录页面的默认视图。
以下设置可让您自定义 GitLab 布局的行为以及仪表板和项目登录页面的默认视图.
### 宽度[](#layout-width "Permalink")
### Layout width[](#layout-width "Permalink")
可以根据喜好将 CODEChina 设置为使用不同的宽度,在固定(最大`1280px` )和流畅( `100%` )应用程序布局之间选择。
可以根据喜好将 GitLab 设置为使用不同的宽度. 在固定(最大`1280px` )和流畅( `100%` )应用程序布局之间选择.
**注意:**虽然使用固定版式时`1280px`是标准最大宽度,但是某些页面仍根据内容使用 100%宽度。
**注意:**虽然使用固定版式时`1280px`是标准最大宽度,但是某些页面仍根据内容使用 100%宽度.
### 默认工作台[](#default-dashboard "Permalink")
### Default dashboard[](#default-dashboard "Permalink")
对于有权访问大量项目但仅能跟上少数项目的用户,默认"仪表板"页面上的活动量可能会很大. 更改此设置可让您重新定义默认的仪表板.
对于有权访问大量项目但仅能跟上少数项目的用户,默认"仪表板"页面上的活动量可能会很大。更改此设置可让您重新定义默认的仪表板。
您可以在此处使用 8 个选项作为默认仪表板视图:
......@@ -83,62 +41,28 @@ manbetx 客户端打不开已经开始在黑暗模式下工作! 深色[版本]
* 您的项目活动
* 已加星标项目的活动
* 您的团体
* Your [Todos](../todos.html)
* [您的代办事项](/docs/user/todo.md)
* 分配的问题
* 分配的合并请求
* 操作仪表板
### Group overview content[](#group-overview-content "Permalink")
网上**论坛概述内容**下拉菜单允许您选择网上论坛首页上显示的信息.
您可以选择 2 个选项:
* 详细信息(默认)
* [Security dashboard](../application_security/security_dashboard/index.html)
### Project overview content[](#project-overview-content "Permalink")
项目概述内容设置允许您选择想要在项目主页上看到的内容.
您可以选择 3 个选项:
* 文件和自述文件(默认)
* Readme
* Activity
### Tab width[](#tab-width "Permalink")
您可以在 GitLab 的各个部分设置标签字符的显示宽度,例如 blob,diff 和片段.
**注意:** GitLab 的某些部分不遵守此设置,包括 WebIDE,文件编辑器和 Markdown 编辑器.
## Localization[](#localization "Permalink")
### Language[](#language "Permalink")
从支持的语言列表中选择首选语言.
*此功能是实验性的,翻译尚未完成.*
### First day of the week[](#first-day-of-the-week "Permalink")
### 选项卡宽度[](#tab-width "Permalink")
可以针对日历视图和日期选择器自定义一周的第一天.
您可以在 CODEChina 的各个部分设置标签字符的显示宽度,例如 blob,diff 和代码片段。
您可以选择以下选项之一作为一周的第一天:
**注意:** CODEChina 的某些部分不遵守此设置,包括 WebIDE,文件编辑器和 Markdown 编辑器。
* Saturday
* Sunday
* Monday
## 本地化[](#localization "Permalink")
如果选择**System Default** ,则将使用系统范围的默认设置.
### 语言[](#language "Permalink")
## Integrations[](#integrations "Permalink")
从支持的语言列表中选择首选语言。
使用第三方服务配置您的首选项,这些服务可增强您的 GitLab 体验.
### 每周的起始[](#first-day-of-the-week "Permalink")
### Sourcegraph[](#sourcegraph "Permalink")
可以针对日历视图和日期选择器自定义一周的第一天,您可以选择以下选项之一作为一周的第一天:
**注意:**仅当 GitLab 管理员已启用 Sourcegraph 时,此设置才可见.
* 周六
* 周日
* 周一
管理由 Sourcegraph 支持的集成代码智能功能的可用性. 查看[Sourcegraph 功能文档](../../integration/sourcegraph.html#enable-sourcegraph-in-user-preferences)以获取更多信息.
\ No newline at end of file
如果选择**System Default** ,则将使用系统范围的默认设置。
\ No newline at end of file
# 个人访问令牌[](#个人访问令牌 "Permalink")
# 个人访问令牌[](#token "Permalink")
版本历史
个人访问令牌在您定义的日期 UTC 午夜到期。
* 在 GitLab 8.8 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/3749) .
* 在 GitLab 12.6 中添加了[有关令牌过期的通知](https://gitlab.com/gitlab-org/gitlab/-/issues/3649) .
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 12.6 中添加了[令牌生存期限制](https://gitlab.com/gitlab-org/gitlab/-/issues/3649) .
* 系统每天在世界标准时间 01:00 AM 进行检查,以识别将在 7 天内到期的个人访问令牌,并向这些令牌的所有者发送电子邮件通知。
If you’re unable to use [OAuth2](../../api/oauth2.html), you can use a personal access token to authenticate with the [GitLab API](../../api/README.html#personalproject-access-tokens).
## 创建个人访问令牌[](#creating-a-personal-access-token "Permalink")
还可以将个人访问令牌与 Git 一起使用,以通过 HTTP 或 SSH 进行身份验证. 启用[两因素身份验证(2FA)](../account/two_factor_authentication.html)时,需要个人访问令牌. 在这两种情况下,都可以使用令牌代替密码进行身份验证.
可以在 CODEChina 个人资料中创建任意数量的个人访问令牌:
个人访问令牌在您定义的日期 UTC 午夜到期.
* GitLab 每天在世界标准时间 01:00 AM 进行检查,以识别将在 7 天内到期的个人访问令牌. 这些令牌的所有者通过电子邮件通知.
* 在 GitLab Ultimate 中,管理员可以[限制个人访问令牌的寿命](../admin_area/settings/account_and_limit_settings.html#limiting-lifetime-of-personal-access-tokens-ultimate-only) .
* 在 GitLab Ultimate 中,管理员可以[切换个人访问令牌到期的执行](../admin_area/settings/account_and_limit_settings.html#optional-enforcement-of-personal-access-token-expiry-ultimate-only) .
有关如何使用个人访问令牌向 API 进行身份验证的示例,请参见[API 文档中](../../api/README.html#personalproject-access-tokens)的以下部分.
GitLab 还提供了[模拟令牌](../../api/README.html#impersonation-tokens) ,这些[令牌](../../api/README.html#impersonation-tokens)是管理员通过 API 创建的. 它们非常适合作为特定用户的自动身份验证.
## Creating a personal access token[](#creating-a-personal-access-token "Permalink")
您可以在 GitLab 个人资料中创建任意数量的个人访问令牌.
1. 登录到 GitLab.
2. 点击右上角的头像,然后选择**设置** .
3. 在" **用户设置"**菜单上,选择" **访问令牌"** .
1. 登录到 CODEChina
2. 点击右上角的头像,然后选择**设置**
3. 在" **用户设置"**菜单上,选择" **访问令牌"**
4. 选择令牌的名称和可选的到期日期.
5. 选择[所需的范围](#limiting-scopes-of-a-personal-access-token) .
6. 单击**创建个人访问令牌**按钮.
7. 将个人访问令牌保存在安全的地方. 离开或刷新页面后,将无法再次访问它.
5. 选择[所需的范围](#limiting-scopes-of-a-personal-access-token)
6. 单击**创建个人访问令牌**按钮
7. 将个人访问令牌保存在安全的地方,离开或刷新页面后,将无法再次访问它
### Revoking a personal access token[](#revoking-a-personal-access-token "Permalink")
### 撤消个人访问令牌[](#revoking-a-personal-access-token "Permalink")
您可以随时单击" **活动个人访问令牌"**区域下的相应" **撤消"**按钮来撤消任何个人访问令牌.
您可以随时单击" **活动个人访问令牌"**区域下的相应" **撤消"**按钮来撤消任何个人访问令牌
### Token activity[](#token-activity "Permalink")
### 令牌活动记录[](#token-activity "Permalink")
您可以从" **个人访问令牌"**页面**查看**上次使用**令牌的时间** . 令牌使用情况的更新每 24 小时固定一次. 对[API 资源](../../api/api_resources.html)[GraphQL API 的](../../api/graphql/index.html)请求将更新令牌的用法.
您可以从" **个人访问令牌"**页面**查看**上次使用**令牌的时间** , 令牌使用情况的更新每 24 小时固定一次。对API 资源和GraphQL API 的请求将更新令牌的用法。
## Limiting scopes of a personal access token[](#limiting-scopes-of-a-personal-access-token "Permalink")
## 个人访问令牌可用范围[](#limiting-scopes-of-a-personal-access-token "Permalink")
可以使用一个或多个范围创建个人访问令牌,这些范围允许给定令牌可以执行各种操作. 下表描述了可用范围.
可以使用一个或多个范围创建个人访问令牌,这些范围允许给定令牌可以执行各种操作,下表描述了可用范围:
| Scope | 引入 | Description |
| --- | --- | --- |
| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 允许访问`/users`下的只读端点. 本质上,允许[用户 API](../../api/users.html)中的任何`GET`请求. |
| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 授予对 API 的完全读写访问权限,包括所有组和项目,容器注册表和程序包注册表. |
| `read_api` | [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28944) | 授予对 API 的读取权限,包括所有组和项目,容器注册表和程序包注册表. |
| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11845) | 如果项目是私有的并且需要授权,则允许读取(拉出) [容器注册表](../packages/container_registry/index.html)图像. |
| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14838) | 允许以系统中的任何用户身份执行 API 操作(如果经过身份验证的用户是管理员). |
| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17894) | 允许通过`git clone`对存储库进行只读访问(拉). |
| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26021) | 允许通过`git clone`对存储库进行读写访问(拉,推). 启用 2FA 时,通过 HTTP 访问 Git 存储库是必需的. |
## Programmatically creating a personal access token[](#programmatically-creating-a-personal-access-token "Permalink")
您可以以编程方式创建预定的个人访问令牌,以用于自动化或测试. 您将需要足够的访问权限才能为 GitLab 实例运行[Rails 控制台会话](../../administration/troubleshooting/debug.html#starting-a-rails-console-session) .
要使用用户名`automation-bot`创建属于用户的令牌,请在 Rails 控制台( `sudo gitlab-rails console` )中运行以下`sudo gitlab-rails console`
```
user = User.find_by_username('automation-bot')
token = user.personal_access_tokens.create(scopes: [:read_user, :read_repository], name: 'Automation token')
token.set_token('token-string-here123')
token.save!
```
使用[GitLab Rails Runner](../../administration/troubleshooting/debug.html#using-the-rails-runner)可以将其简化为单行 shell 命令:
```
sudo gitlab-rails runner "token = User.find_by_username('automation-bot').personal_access_tokens.create(scopes: [:read_user, :read_repository], name: 'Automation token'); token.set_token('token-string-here123'); token.save!"
```
**注意:**令牌字符串的长度必须为 20 个字符,否则将不会被识别为个人访问令牌.
有效范围的列表及其作用可以[在源代码中](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/auth.rb)找到.
## Programmatically revoking a personal access token[](#programmatically-revoking-a-personal-access-token "Permalink")
您可以通过编程方式撤消个人访问令牌. 您将需要足够的访问权限才能为 GitLab 实例运行[Rails 控制台会话](../../administration/troubleshooting/debug.html#starting-a-rails-console-session) .
要撤销已知令牌`token-string-here123` ,请在 Rails 控制台( `sudo gitlab-rails console` )中运行以下`sudo gitlab-rails console`
```
token = PersonalAccessToken.find_by_token('token-string-here123')
token.revoke!
```
可以使用[GitLab Rails Runner](../../administration/troubleshooting/debug.html#using-the-rails-runner)将其[简化](../../administration/troubleshooting/debug.html#using-the-rails-runner)为单行 shell 命令:
```
sudo gitlab-rails runner "PersonalAccessToken.find_by_token('token-string-here123').revoke!"
```
\ No newline at end of file
| `read_user` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 允许访问`/users`下的只读端点。本质上,允许用户 API中的任何`GET`请求 |
| `api` | [GitLab 8.15](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5951) | 授予对 API 的完全读写访问权限,包括所有组和项目,容器注册表和程序包注册表 |
| `read_api` | [GitLab 12.10](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28944) | 授予对 API 的读取权限,包括所有组和项目,容器注册表和程序包注册表 |
| `read_registry` | [GitLab 9.3](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/11845) | 如果项目是私有的并且需要授权,则允许读取(拉出) 容器注册表图像 |
| `sudo` | [GitLab 10.2](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/14838) | 允许以系统中的任何用户身份执行 API 操作(如果经过身份验证的用户是管理员) |
| `read_repository` | [GitLab 10.7](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/17894) | 允许通过`git clone`对存储库进行只读访问(拉) |
| `write_repository` | [GitLab 11.11](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26021) | 允许通过`git clone`对存储库进行读写访问(拉,推)。 启用 2FA 时,通过 HTTP 访问 Git 存储库是必需的 |
\ No newline at end of file
......@@ -2,7 +2,7 @@
您可以创建用于托管代码库的项目,可以通过项目进行 Issue 管理,进行代码协作,并使用内置的 CI / CD 持续构建,测试和部署应用程序。
您可以设置您的项目为[公开](../../public_access/public_access.html)[私有](../../public_access/public_access.html),我们也不限制您创建的私有项目数量。
您可以设置您的项目为公开或私有,我们也不限制您创建的私有项目数量。
## 项目功能[](#projects-features "Permalink")
......@@ -10,73 +10,58 @@
**代码仓库:**
* [Issue](issues/index.html) :与您的团队讨论问题内的实现
* [看板](issue_board.html) :组织工作流程并确定其优先级
* [代码仓库](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)
* [Issue](/docs/user/project/issues.md) :与您的团队讨论问题内的实现
* [看板](/docs/user/project/kanban.md) :组织工作流程并确定其优先级
* [代码仓库](/docs/user/project/repo.md) :将代码托管在完全集成的平台中
* [分支](/docs/user/project/repo/branches.md) :使用 Git 分支策略在代码上进行协作
* [受保护的分支机构](/docs/user/project/protected-branch.md) :防止协作者弄乱历史记录或在未经审查的情况下推送代码
* [受保护的标签](/docs/user/project/protected-tag.md) :控制谁有权创建标签,并防止意外更新或删除
* 储存库镜像
* [签署提交](/docs/user/project/repo/gpg-sign.md) :使用 GPG 签署您的提交
* 部署令牌 :管理基于项目的部署令牌,这些令牌允许永久访问存储库和 Container Registry.
* [Web IDE](/docs/user/project/webide.md)
**Release 及合并请求:**
* [Issue](issues/index.html) :与您的团队讨论问题内的实现
* [发行板](issue_board.html) :组织工作流程并确定其优先级
* [合并请求](merge_requests/index.html) :应用您的分支策略并获得团队的审查
* [合并请求批准](merge_requests/merge_request_approvals.html) :实施更改之前[请求批准](merge_requests/merge_request_approvals.html)
* [修复合并中的冲突](merge_requests/resolve_conflicts.html) :直接从网页中使用 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)
** CI / CD:**
* [CI / CD](../../ci/README.html) :内置的持续集成,交付和部署工具
* [容器注册表](../packages/container_registry/index.html) :开箱即用地构建和推送 Docker 映像
* [自动部署](../../topics/autodevops/stages.html#auto-deploy) :配置 CI / CD 以自动设置应用程序的部署
* [启用和禁用 CI / CD](../../ci/enable_or_disable_ci.html)
* [Pipelines](../../ci/pipelines/index.html) :从 UI 配置和可视化 GitLab CI / CD 管道
* [计划的Pipeline](../../ci/pipelines/schedules.html) :计划管道以在选定的时间开始
* [Pipeline图](../../ci/pipelines/index.html#visualize-pipelines) :通过WEB查看整个管道
* [作业工件](../../ci/pipelines/job_artifacts.html) :定义,浏览和下载作业工件
* [Pipeline设置](../../ci/pipelines/settings.html) :设置 Git 策略(选择从作业中的 GitLab 提取存储库的默认方式),超时(定义可以运行作业的最长时间(以分钟为`.gitlab-ci.yml` )) `.gitlab-ci.yml`自定义路径,测试覆盖率分析,管道的可见性等
* [Kubernetes 集群集成](clusters/index.html) :将您的 项目与 Kubernetes 集群连接
* [功能标志](../../operations/feature_flags.html) :功能标志允许您通过动态切换某些功能来以不同的方式发布项目
* [Pages](pages/index.html) :使用[Pages](pages/index.html)构建,测试和部署您的静态网站
* [Issue](/docs/user/project/issues.md) :与您的团队讨论问题内的实现
* [发行板](/docs/user/project/kanban.md) :组织工作流程并确定其优先级
* [合并请求](/docs/user/project/merge-request.md) :应用您的分支策略并获得团队的审查
* 合并请求批准 :实施更改之前请求批准
* [修复合并中的冲突](/docs/user/project/merge-request/resolve-conflicts.md) :直接从网页中使用 Git diff 工具
* 审查应用程序 :按分支实时预览合并请求中建议的更改结果
* [标签](/docs/user/project/label.md) :按标签整理问题并合并请求
* [时间跟踪](/docs/user/project/time-track.md) :跟踪估计在完成问题或合并请求上花费的时间和时间
* [里程碑](/docs/user/project/milestone.md) :朝着目标日期迈进
* [描述模板](/docs/user/project/description-template.md) :为项目定义特定于上下文的模板,并为您的项目合并请求描述字段
* [斜杠命令(快速操作)](/docs/user/project/quick-actions.md) :针对问题或合并请求的常见操作的文本快捷方式
* [自动完成字符](/docs/user/project/autofill.md) :自动完成对用户,组,问题,合并请求和其他 GitLab 元素的引用
* [Web IDE](/docs/user/project/webide.md)
**其他特性:**
* [Wiki](wiki/index.html) :在集成的 Wiki 中记录您的项目
* [代码片](../snippets.html) :存储,共享和协作代码片段
* [价值流分析](cycle_analytics.html) :查看您的开发生命周期
* [分析](insights/index.html) :配置对您的项目至关重要的见解
* [语法高亮](highlighting.html) :一种自定义代码块的替代方法,可替代默认语言选择
* [Release](releases/index.html) :一种跟踪项目中可交付成果的方式,可作为源,构建输出,其他元数据和与代码的发行版本相关的其他工件的快照
* [代码所有者](code_owners.html) :为某些文件指定代码所有者
* [License](../compliance/license_compliance/index.html) :批准和拒绝项目的许可证.
* [依赖项列表](../application_security/dependency_list/index.html) :查看项目依赖项.
* [要求](requirements/index.html) :要求使您可以创建标准来检查产品.
* [静态站点编辑器](static_site_editor/index.html) :无需事先了解代码库或 Git 命令,即可在静态网站上快速编辑内容.
* [Wiki](/docs/user/project/wiki.md) :在集成的 Wiki 中记录您的项目
* 代码片 :存储,共享和协作代码片段
* 价值流分析 :查看您的开发生命周期
* 分析:配置对您的项目至关重要的见解
* 语法高亮 :一种自定义代码块的替代方法,可替代默认语言选择
* [Release](/docs/user/project/releases.md) :一种跟踪项目中可交付成果的方式,可作为源,构建输出,其他元数据和与代码的发行版本相关的其他工件的快照
* 代码所有者 :为某些文件指定代码所有者
* License :批准和拒绝项目的许可证
* 依赖项列表 :查看项目依赖项
* 要求 :要求使您可以创建标准来检查产品
* 静态站点编辑器 :无需事先了解代码库或 Git 命令,即可在静态网站上快速编辑内容
### 项目集成[](#项目集成 "Permalink")
[将您的项目](integrations/index.html)与 Jira,Mattermost,Kubernetes,Slack 等进行[集成](integrations/index.html)
将您的项目与 Jira,Mattermost,Kubernetes,Slack 等进行集成
## 新建项目[](#新建项目 "Permalink")
了解如何在 CODEChina 中[创建一个新项目](../../basics/create-project.html) .
了解如何在 CODEChina 中[创建一个新项目](/docs/basic/create-project.md)
### Fork 项目[](#fork项目 "Permalink")
您可以[Fork 一个项目](repository/forking_workflow.html) ,以便:
您可以Fork 一个项目 ,以便:
* 通过 Fork 项目并创建从分支到上游项目的合并请求来进行代码协作
* Fork 一个项目并在该基础上进行开发
......@@ -115,15 +100,14 @@
项目设置允许您设置项目的可见性级别、访问级别,并执行诸如归档、重命名或转移项目的操作。
了解更多有关[项目设置](settings/index.html)的文档。
了解更多有关[项目设置](/docs/user/project/settings.md)的文档。
## 导入/导出项目[](#i导入导出项目 "Permalink")
* [导入项目](import/index.html) from:
* [从Github导入](import/github.html)
* [从Bitbucket导入](import/bitbucket.html)
* [导出项目](settings/import_export.html#exporting-a-project-and-its-data)
* [导入项目](/docs/user/project/import.md) from:
* [从Github导入](/docs/user/project/import/github.md)
* [从Bitbucket导入](/docs/user/project/import/by-url.md)
* 导出项目
## 删除项目[](#删除项目 "Permalink")
......@@ -142,19 +126,19 @@
## 项目成员[](#项目成员 "Permalink")
了解如何[将成员添加到您的项目中](members/index.html)
了解如何[将成员添加到您的项目中](/docs/user/project/member.md)
## 退出项目[](#退出项目 "Permalink")
当项目属于组织时(即项目在[组织的命名空间下](../group/index.html#命名空间) ), **退出项目**将仅显示在项目的页面上. 如果您选择退出项目,那么您将不再是项目成员,并且将无法继续参与项目。
当项目属于组织时(即项目在[组织的命名空间下](/docs/user/org.md#命名空间) ),**退出项目**将仅显示在项目的页面上。如果您选择退出项目,那么您将不再是项目成员,并且将无法继续参与项目。
## 项目首页[](#项目首页 "Permalink")
项目首页会根据项目的可见性设置和用户权限来显示不同的内容:
对于公共项目以及私有项目中[有权查看该项目代码](../permissions.html#project-members-permissions)的项目成员:
对于公共项目以及私有项目中[有权查看该项目代码](/docs/user/permissions.md#project-members-permissions)的项目成员:
* 显示[`README`文件或索引文件的](repository/#repository-readme-and-index-files)内容(如果有),然后显示项目存储库中的目录列表
* 显示[`README`文件或索引文件的](/docs/user/project/repo.md#repository-readme-and-index-files)内容(如果有),然后显示项目存储库中的目录列表
* 如果项目不包含这些文件中的任何一个,则访问者将看到存储库的文件和目录列表
对于没有权限查看项目代码的用户:
......@@ -172,17 +156,4 @@
* 命名空间及其下的任何内容(例如项目)的现有 Web URL 将重定向到新 URL
* 命名空间下项目的现有 Git 远程 URL 将重定向到新的远程 URL,每次将其推/拉到修改过路径的代码仓库时,都会显示一条警告消息:提示您更新远程仓库地址。 这也就意味着在重命名后,任何自动化脚本或 Git 客户端将继续工作
* 只要原来的路径还没有被其他用户、组织或者项目占用,路径重定向功能将一直能够正常使用
## 项目 API[](#项目api "Permalink")
您的项目可以使用许多[API](../../api/README.html)
* [话题](../../api/discussions.html)
* [基本信息](../../api/projects.html)
* [导入/导出项目](../../api/project_import_export.html)
* [看板](../../api/boards.html)
* [标签](../../api/labels.html)
* [Markdown](../../api/markdown.html)
* [合并请求](../../api/merge_requests.html)
* [里程碑](../../api/milestones.html)
\ No newline at end of file
* 只要原来的路径还没有被其他用户、组织或者项目占用,路径重定向功能将一直能够正常使用
\ No newline at end of file
......@@ -32,8 +32,8 @@
在" Issue "讨论中,输入`@l`将显示以下弹出列表,需要注意的是这里并不包括用户`shelba` ,因为该列表仅包含与问题最相关的 5 个用户。
[![Popup list which includes users whose username or name contains the letter `l`](img/autocomplete_characters_example1_v12_0.png)](/docs/img/autocomplete_characters_example1_v12_0.png)
[![Popup list which includes users whose username or name contains the letter `l`](/docs/img/autocomplete_characters_example1_v12_0.png)](/docs/img/autocomplete_characters_example1_v12_0.png)
如果继续输入`@le` ,弹出列表将更改为以下内容。现在,弹出窗口仅包括用户名中出现`le`或用户名中的单词的用户。
[![Popup list which includes users whose username or name contains the string `le`](img/autocomplete_characters_example2_v12_0.png)](/docs/img/autocomplete_characters_example2_v12_0.png)
\ No newline at end of file
[![Popup list which includes users whose username or name contains the string `le`](/docs/img/autocomplete_characters_example2_v12_0.png)](/docs/img/autocomplete_characters_example2_v12_0.png)
\ No newline at end of file
......@@ -8,7 +8,7 @@
可以通过以下步骤将新徽章添加到项目:
1. 进入项目的**项目设置>通用设置>徽章**
1. 进入项目的**项目设置>常规设置>徽章**
2. 输入徽章的名称,在"链接"下,输入徽章应指向的 URL,在"徽章图像 URL"下输入应显示的图像的 URL
3. 点击**添加徽章**按钮来提交**徽章**
......
# 描述模板[](#discription-template "Permalink")
# 描述模板[](#description-template "Permalink")
我们都知道,项目开发人员更有可能及时解决提交的 Issue。使用描述模板,您可以为 Issue 定义特定的上下文的模板,并为项目合并请求描述字段,并帮助从 Issue 中过滤掉许多不必要的噪音。
......
# 迁移项目[](#迁移项目 "Permalink")
1. [From GitHub.com or GitHub Enterprise](github.html)
2. [From repo by URL](repo_by_url.html)
1. [From GitHub.com or GitHub Enterprise](/docs/user/project/import/github.md)
2. [From repo by URL](/docs/user/project/import/by-url.md)
除了上述特定的迁移文档之外,您还可以从 New Project 页面通过 HTTP 导入任何 Git 代码仓库。请注意,如果存储库太大,则导入可能会因为超时而失败。
\ No newline at end of file
......@@ -9,4 +9,4 @@
5. 单击**创建项目**开始导入过程
6. 完成后,您将被重定向到新创建的项目
[![Import project by repo URL](img/import_projects_from_repo_url.png)](img/import_projects_from_repo_url.png)
\ No newline at end of file
[![Import project by repo URL](/docs/img/import_projects_from_repo_url.png)](/docs/img/import_projects_from_repo_url.png)
\ No newline at end of file
......@@ -17,7 +17,7 @@
* 拉取请求评论
* 定期发布和请求注释
保留对拉取请求和问题的引用,并且每个导入的存储库都保持可见性级别,除非该[可见性级别受到限制](../../../public_access/public_access.html#restricting-the-use-of-public-or-internal-projects) ,在这种情况下,它默认为默认项目可见性。
保留对拉取请求和问题的引用,并且每个导入的存储库都保持可见性级别,除非该可见性级别受到限制 ,在这种情况下,它默认为默认项目可见性。
## 实现原理[](#how-it-works "Permalink")
......
......@@ -91,6 +91,6 @@ Issue 包含各种内容和元数据,从而在使用方式上具有很大的
## 其他 Issue 操作[](#other-issue-actions "Permalink")
* [从模板创建 Issue](/docs/user/project/discription-template.md#using-the-templates)
* [从模板创建 Issue](/docs/user/project/description-template.md#using-the-templates)
* [设置截止日期](/docs/user/project/issues/due-date.md)
* [批量编辑问题](/docs/user/project/bulk-edit.md)——从 Issue 列表中选择多个 Issue,以批量更改其状态,指派人,里程碑或标签。
\ No newline at end of file
# 操作Issue[](#操作Issue "Permalink")
请参考[ Issue 文档](index.html)以了解更多关于 Issue 的介绍。
请参考[ Issue 文档](/docs/user/project/issues.md)以了解更多关于 Issue 的介绍。
## Issue的元素[](#parts-of-an-issue "Permalink")
......@@ -8,7 +8,7 @@
您可以在一个屏幕上找到该 Issue 的所有信息。
[![Issue view](/../../docs/img/issues_main_view_numbered.png)](img/issues_main_view_numbered.png)
[![Issue view](/docs/img/issues_main_view_numbered.png)](/docs/img/issues_main_view_numbered.png)
* **1.** [新建 Issue, 关闭 issue (重新开启 issue, 报告 issue)](#new-issue-close-issue-reopen-issue-report-issue)
* **2.** [新建待办事项](#to-do)
......@@ -40,11 +40,11 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
单击" **新建 Issue"**将打开一个新窗口,可以在同一项目中创建一个新 Issue。单击**关闭 Issue**将关闭此 Issue,但不会被删除。如果 Issue 已经关闭,您仍然可以访问它,并且按钮将显示**重新开启 issue** ,您可以单击以重新打开 Issue,重新开放的 Issue 与其他任何 Issue 都没有不同。
如果您无权修改 Issue,则" **关闭 Issue"**按钮将替换为" **举报 Issue"** ,您可以单击该按钮以[提交](../../abuse_reports.html)有关该 Issue [的滥用情况报告](../../abuse_reports.html); 如果您有权修改 Issue,但仅在关闭 Issue后,它也会显示.
如果您无权修改 Issue,则" **关闭 Issue"**按钮将替换为" **举报 Issue"** ,您可以单击该按钮以[提交](/docs/user/abuse.md)有关该 Issue [的滥用情况报告](/docs/user/abuse.md); 如果您有权修改 Issue,但仅在关闭 Issue后,它也会显示.
### 待办事项[](#to-do "Permalink")
您可以在[待办事项列表](../../todos.html)添加待办事项或从中删除待办事项。具体可以执行的操作取决于待办事项是否已在"任务列表"中,如果问题是:
您可以在[待办事项列表](/docs/user/todo.md)添加待办事项或从中删除待办事项。具体可以执行的操作取决于待办事项是否已在"任务列表"中,如果问题是:
* 已在您的待办事项清单上:该按钮标有" **标记为已完成"** ,单击按钮以从您的任务列表中删除该问题
* 不在您的待办事项清单上:该按钮标有**添加待办事项** ,单击按钮将问题添加到您的"任务列表"中
......@@ -62,19 +62,19 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
### 里程碑[](#milestone "Permalink")
选择一个[里程碑](../milestones/index.html) ,并将 Issue 归类到其中。
选择一个[里程碑](/docs/user/project/milestone.md) ,并将 Issue 归类到其中。
### 工时统计[](#time-tracking "Permalink")
使用[快速行动](../quick_actions.html)[跟踪估计和花费在 Issue 上的时间](../time_tracking.html) ,您可以添加解决 Issue [所需时间](../time_tracking.html#estimates)[估计](../time_tracking.html#estimates),还可以添加解决 Issue[所花费的时间](../time_tracking.html#time-spent)
使用[快速行动](/docs/user/project/quick-actions.md)[跟踪估计和花费在 Issue 上的时间](/docs/user/project/time-track.md) ,您可以添加解决 Issue [所需时间](/docs/user/project/time-track.md#estimates)[估计](/docs/user/project/time-track.md#estimates),还可以添加解决 Issue[所花费的时间](/docs/user/project/time-track.md#time-spent)
### 截止日期[](#due-date "Permalink")
当您的工作时间很紧时,有一种方法来为实现和解决 Issue 设置截止日期将尤为重要。这可以在[截止日期](due_dates.html)元素中完成,截止日期可以根据需要进行多次更改。
当您的工作时间很紧时,有一种方法来为实现和解决 Issue 设置截止日期将尤为重要。这可以在[截止日期](/docs/user/project/issues/due-date.md)元素中完成,截止日期可以根据需要进行多次更改。
### 标签[](#labels "Permalink")
通过给 Issue 加上[标签](../labels.html)来对其进行分类,它们有助于组织工作流程,并使您能够更顺畅的使用看板。
通过给 Issue 加上[标签](/docs/user/project/label.md)来对其进行分类,它们有助于组织工作流程,并使您能够更顺畅的使用看板。
还可以为组织标签分配 Issue ,组织标签允许您对同一组内的所有项目使用相同的标签,它们的工作原理完全相同,并且可立即用于该组织的所有项目。
......@@ -82,19 +82,19 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
### 机密性[](#confidentiality "Permalink")
您可以[将 Issue 设置为机密](confidential_issues.html), 设置后,未经授权的用户将无法访问该 Issue,也不会在项目看板或 Issue 列表中看到该 Issue。
您可以[将 Issue 设置为机密](/docs/user/project/issues/confidential.md), 设置后,未经授权的用户将无法访问该 Issue,也不会在项目看板或 Issue 列表中看到该 Issue。
### 锁定 Issue[](#lock-issue "Permalink")
您可以[锁定 Issue 中的讨论](../../discussions/index.html#lock-discussions) ,以防止添加更多评论。
您可以[锁定 Issue 中的讨论](/docs/user/discussions.md) ,以防止添加更多评论。
### 参与者[](#participants "Permalink")
涉及该 Issue 的所有用户,他们要么参与了该 Issue 的[讨论](../../discussions/index.html) ,要么在描述或讨论中被提及。
涉及该 Issue 的所有用户,他们要么参与了该 Issue 的[讨论](/docs/user/discussions.md) ,要么在描述或讨论中被提及。
### 通知[](#notifications "Permalink")
单击图标以启用/禁用该 Issue 的[通知](../../profile/notifications.html#issue--epics--merge-request-events) ,如果您以任何方式参与了该 Issue,它将自动启用。
单击图标以启用/禁用该 Issue 的[通知](/docs/user/account/email-notify.md#issue--epics--merge-request-events) ,如果您以任何方式参与了该 Issue,它将自动启用。
* **启用**: 如果您不是该 Issue 的参与者,但想要了解该 Issue 的进展,您可以启用并订阅该 Issue 的更新通知
* **禁用** :如果您正在接收有关该 Issue 的更新通知,但不再希望接收它们,请禁用该通知
......@@ -105,11 +105,11 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
### 描述[](#description "Permalink")
纯文本标题和 Issue 描述位于 Issue 页面的顶部,该描述完全支持[Markdown](../../markdown.html#gitlab-flavored-markdown-gfm) ,支持许多格式。问题历史记录中列出了对 Issue 描述的更改记录。
纯文本标题和 Issue 描述位于 Issue 页面的顶部,该描述完全支持[Markdown](/docs/user/markdown.md#gitlab-flavored-markdown-gfm) ,支持许多格式。问题历史记录中列出了对 Issue 描述的更改记录。
### 提及[](#mentions "Permalink")
您可以使用`@username``@groupname`提及用户或组织,除非他们设置禁用了所有通知,否则它们将通过待办事项和电子邮件得到通知,这是在[通知设置中](../../profile/notifications.html)控制的。
您可以使用`@username``@groupname`提及用户或组织,除非他们设置禁用了所有通知,否则它们将通过待办事项和电子邮件得到通知,这是在通知设置中控制的。
自己的提及(当前登录的用户)将以不同的颜色突出显示,使您可以轻松查看涉及到的评论,帮助您快速关注它们。
......@@ -117,11 +117,11 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
### 相关的合并请求[](#related-merge-requests "Permalink")
该 Issue 的描述或 Issue 讨论中提到的[合并请求](crosslinking_issues.html#from-merge-requests)在此处列为[相关合并请求](crosslinking_issues.html#from-merge-requests) ,另外,如果当前 Issue 在另一个合并请求中被提及,则该合并请求也将在此处列出。
该 Issue 的描述或 Issue 讨论中提到的[合并请求](/docs/user/project/issues/crosslinking.md#from-merge-requests)在此处列为[相关合并请求](/docs/user/project/issues/crosslinking.md#from-merge-requests) ,另外,如果当前 Issue 在另一个合并请求中被提及,则该合并请求也将在此处列出。
### 点赞[](#award-emoji "Permalink")
您可以为该 Issue 点赞, 有"顶"和"踩"两种快捷方式,或者您可以单击浅灰色的"笑脸"图标并从可用的[Markdown Emoji](../../markdown.html#emoji)下拉列表中选择其他表情。
您可以为该 Issue 点赞, 有"顶"和"踩"两种快捷方式,或者您可以单击浅灰色的"笑脸"图标并从可用的[Markdown Emoji](/docs/user/markdown.md#emoji)下拉列表中选择其他表情。
**提示:在讨论中**发布"+1"作为评论会对该 Issue 的所有参与/订阅者造成垃圾邮件,也会使讨论内容显得混乱,因此不建议这样做.。给 Issue 点赞是一种让他们知道您的反应而不会发送垃圾邮件的方法,我们更建议您使用这种方式。
......@@ -141,7 +141,7 @@ Issue 从状态(打开或关闭)开始,然后是作者,并包括许多
通过一个操作同时完成创建一个新的分支和**草稿**合并请求, 默认情况下,该分支将被命名为`issuenumber-title` ,但是您可以选择任何名称,并且系统会验证该分支是否已经被使用。创建的合并请求将自动继承 Issue 的里程碑和标签,并设置为在合并时自动关闭 Issue 。
(可选)您可以选择仅创建一个[新分支](../repository/web_editor.html#create-a-new-branch-from-an-issue) ,并以该 Issue 命名。
(可选)您可以选择仅创建一个[新分支](/docs/user/project/repo/web-editor.md#create-a-new-branch-from-an-issue) ,并以该 Issue 命名。
### Issue 历史记录[](#issue-history "Permalink")
......
......@@ -8,7 +8,7 @@
创建新 Issue 时,可以在文本区域下方的复选框中将问题标记为机密 Issue。选中该框,然后点击" **提交问题"**按钮以创建 Issue。对于现有 Issue ,可以对其进行编辑,然后选中机密复选框,并点击**保存更改**
[![Creating a new confidential issue](/../../docs/img/confidential_issues_create.png)](img/confidential_issues_create.png)
[![Creating a new confidential issue](/docs/img/confidential_issues_create.png)](/docs/img/confidential_issues_create.png)
## 修改 Issue 的机密性[](#modifying-issue-confidentiality "Permalink")
......@@ -20,7 +20,7 @@
每次 Issue 机密性的更改也会被系统作为评论自动记录在 Issue 的历史记录中。
[![Confidential issues system notes](/../../docs/img/confidential_issues_system_notes.png)](img/confidential_issues_system_notes.png)
[![Confidential issues system notes](/docs/img/confidential_issues_system_notes.png)](/docs/img/confidential_issues_system_notes.png)
## 机密 Issue 区别[](#indications-of-a-confidential-issue "Permalink")
......@@ -30,17 +30,17 @@
在 Issue 列表页面视图中,您可以在标记为机密的问题旁边看到斜线图标
[![Confidential issues index page](/../../docs/img/confidential_issues_index_page.png)](img/confidential_issues_index_page.png)
[![Confidential issues index page](/docs/img/confidential_issues_index_page.png)](/docs/img/confidential_issues_index_page.png)
* * *
同样,在 Issue 详情页,您可以在 Issue 标题上方看到斜线图标,此外在下方的评论区域中也有一个提示框,表明您正在评论的 Issue 是机密的。
[![Confidential issue page](/../../docs/img/confidential_issues_issue_page.png)](img/confidential_issues_issue_page.png)
[![Confidential issue page](/docs/img/confidential_issues_issue_page.png)](/docs/img/confidential_issues_issue_page.png)
Issue 详情页右边栏也有一个 机密性的标识:
[![Sidebar confidential issue](/../../docs/img/sidebar_confidential_issue.png)](img/sidebar_confidential_issue.png)
[![Sidebar confidential issue](/docs/img/sidebar_confidential_issue.png)](/docs/img/sidebar_confidential_issue.png)
## 机密 Issue 的访问权限[](#permissions-and-access-to-confidential-issues "Permalink")
......
......@@ -32,4 +32,4 @@ git commit -m "this is my commit message. Related to https://codechina.csdn.net/
在合并请求中提及 Issue 与在 Issue 中关联是一样的步骤。
当您在合并请求说明中提到 Issue 时,它就会[将 Issue 和合并请求链接在一起](#from-related-issues)。此外,您还可以[将 Issue 设置](managing_issues.html#closing-issues-automatically)为在合并请求合并后立即[自动关闭](managing_issues.html#closing-issues-automatically)
\ No newline at end of file
当您在合并请求说明中提到 Issue 时,它就会[将 Issue 和合并请求链接在一起](#from-related-issues)。此外,您还可以[将 Issue 设置](/docs/user/project/issues/manage.md#closing-issues-automatically)为在合并请求合并后立即[自动关闭](/docs/user/project/issues/manage.md#closing-issues-automatically)
\ No newline at end of file
......@@ -8,7 +8,7 @@
您还可以通过 Issue 侧边栏设置截止日期。在 Issue 详情页的右侧找到**截止日期**,然后单击**编辑**以选择截止日期或删除现有的日期,您所作的更改将立即保存。
设置截止日期的最后一种方法是直接在 Issue 的描述或评论中使用[快速操作](../quick_actions.html)
设置截止日期的最后一种方法是直接在 Issue 的描述或评论中使用[快速操作](/docs/user/project/quick-actions.md)
* `/due <date>` :设置到期日, 有效的`<date>`示例包括`in 2 days``this Friday``December 31st`
* `/remove_due_date` :删除到期日
......@@ -17,7 +17,7 @@
设置了截止日期的 Issue 可以在 Issue 跟踪器中轻松查看到,并在它们旁边显示了截止日期,日期过期的 Issue 会将图标和日期显示为红色。您可以从右侧的下拉菜单中按截止日期倒叙/顺序对 Issue 进行排序。
截止日期也会出现在您的[待办事项清单中](../../todos.html) .
截止日期也会出现在您的[待办事项清单中](/docs/user/todo.md) .
未解决 Issue 在截止日期的前一天,系统将向该 Issue 的所有参与者发送电子邮件,与截止日期一样,"截止日期前的一天"由服务器的时区来确定。
......
......@@ -4,7 +4,7 @@ Issue 是通过想法和计划进行协工作的基本要素。 [创建](#create
## 创建 Issue[](#create-a-new-issue "Permalink")
创建新 Issue 时,系统将提示您填写 Issue 的[数据和字段](issue_data_and_actions.html),如下所示。如果您清楚要分配给Issue 的值,则可以使用" [快速操作"](../quick_actions.html)功能输入相应的内容,而不用从列表中选择它们。
创建新 Issue 时,系统将提示您填写 Issue 的数据和字段,如下所示。如果您清楚要分配给Issue 的值,则可以使用" [快速操作"](/docs/user/project/quick-actions.md)功能输入相应的内容,而不用从列表中选择它们。
### 获取新建 Issue 的表单[](#accessing-the-new-issue-form "Permalink")
......@@ -17,7 +17,7 @@ Issue 是通过想法和计划进行协工作的基本要素。 [创建](#create
### 认识新建 Issue 的表单[](#elements-of-the-new-issue-form "Permalink")
[![New issue from the issues list](/../../docs/img/new_issue_v13_2.png)](img/new_issue_v13_2.png)
[![New issue from the issues list](/docs/img/new_issue_v13_2.png)](/docs/img/new_issue_v13_2.png)
创建新 Issue 时,可以填写以下字段:
......@@ -47,9 +47,9 @@ Issue 是通过想法和计划进行协工作的基本要素。 [创建](#create
当提交或合并请求解决了一个或多个 Issue 时,在将提交或合并请求推送到项目的默认分支时将会自动关闭这些 Issue。
如果提交消息或合并请求描述包含与[定义的模式](#default-closing-pattern)相匹配的文本,则匹配文本中引用的所有 Issue 均将被关闭。将提交推送到项目的[**默认**分支时](../repository/branches/index.html#default-branch) ,或者将提交或合并请求合并到默认分支时,Issue 就会自动关闭。
如果提交消息或合并请求描述包含与[定义的模式](#default-closing-pattern)相匹配的文本,则匹配文本中引用的所有 Issue 均将被关闭。将提交推送到项目的[**默认**分支时](/docs/user/project/repo/branches.md#default-branch) ,或者将提交或合并请求合并到默认分支时,Issue 就会自动关闭。
例如,如果合并请求描述中包含`Closes #4, #6, Related to #5`,则合并合并请求时问题`#4``#6`将自动关闭,但不会合并`#5`,只会将其标记为[相关 Issue](related_issues.html) ,但不会自动关闭。
例如,如果合并请求描述中包含`Closes #4, #6, Related to #5`,则合并合并请求时问题`#4``#6`将自动关闭,但不会合并`#5`,只会将其标记为相关 Issue ,但不会自动关闭。
如果 Issue 与 合并请求位于不同的代码仓库中,则需要提供完整的 Issue URL地址:
......@@ -90,10 +90,10 @@ and https://codechina.csdn.net/group/otherproject/issues/23.
#### 禁用自动关闭 Issue[](#disabling-automatic-issue-closing "Permalink")
可以在[项目的设置中](../settings/index.html)禁用项目的自动关闭 Issue 功能。引用的问题仍将按原样显示,但不会自动关闭。
可以在[项目的设置中](/docs/user/project/settings.md)禁用项目的自动关闭 Issue 功能。引用的问题仍将按原样显示,但不会自动关闭。
这仅影响被新合并请求或提交关联的 Issue,已经解决的 Issue 仍然保持原样,禁用自动关闭 Issue 的设置仅影响当前项目中的合并请求,并不会阻止其他项目从通过跨项目的 Issue将其关闭。
## 删除 Issue[](#deleting-issues "Permalink")
具有项目 [Owner](../../permissions.html) 权限的用户可以通过编辑 Issue 并单击删除按钮来删除 Issue。
具有项目 [Owner](/docs/user/permissions.md) 权限的用户可以通过编辑 Issue 并单击删除按钮来删除 Issue。
# Issue 排序[](#Issue排序 "Permalink")
您可以通过多种方式对 Issue 列表进行排序,包括按 Issue 创建日期、里程碑、截止日期等进行排序。可用的排序选项可以根据列表的上下文进行更改。有关按发布优先级排序的信息,请参见[标签优先级](../labels.html#label-priority)
您可以通过多种方式对 Issue 列表进行排序,包括按 Issue 创建日期、里程碑、截止日期等进行排序。可用的排序选项可以根据列表的上下文进行更改。有关按发布优先级排序的信息,请参见[标签优先级](/docs/user/project/label.md#label-priority)
在项目的 Issue 列表清单中,也可以手动对 Issue 进行排序,类似于看板中的手动排序。
......
......@@ -45,21 +45,19 @@ MR 还包含导航选项卡,从中可以查看线程上正在进行的讨论
## 新建合并请求[](#creating-merge-requests "Permalink")
Learn [how to create a merge request](creating_merge_requests.html).
点击了解 [如何创建一个新的合并请求](/docs/user/project/merge-request/create-merge-request.md)
## Reviewing and managing merge requests[](#reviewing-and-managing-merge-requests "Permalink")
## 管理和查看合并请求[](#reviewing-and-managing-merge-requests "Permalink")
查看可使用的功能来[查看和管理合并请求](reviewing_and_managing_merge_requests.html) .
查看和管理合并请求
## Testing and reports in merge requests[](#testing-and-reports-in-merge-requests "Permalink")
## 在合并请求中测试和报告[](#testing-and-reports-in-merge-requests "Permalink")
了解有关合并请求中的[测试](testing_and_reports_in_merge_requests.html)选项[和报告](testing_and_reports_in_merge_requests.html)更改的信息.
有关合并请求中的测试选项和报告更改的信息
## Authorization for merge requests[](#authorization-for-merge-requests "Permalink")
## 合并请求认证[](#authorization-for-merge-requests "Permalink")
使用 GitLab 进行合并请求的主要方法有两种:
使用 CODEChina 进行合并请求的主要方法有两种:
1. 在单个存储库中使用[受保护的分支](../protected_branches.html)
2. 使用权威项目的分支
[Learn more about the authorization for merge requests.](authorization_for_merge_requests.html)
\ No newline at end of file
1. 在单个存储库中使用[受保护的分支](/docs/user/project/protected-branch.md)
2. 使用权威项目的分支
\ No newline at end of file
......@@ -6,7 +6,7 @@ Cherry-pick 是 Git 中非常强大的一个功能,通过在合并请求和提
合并请求合并后,将可以使用**Cherry-pick**按钮来选择该合并中需要引入的更改。
[![Cherry-pick Merge Request](/../../docs/img/cherry_pick_changes_mr.png)](img/cherry_pick_changes_mr.png)
[![Cherry-pick Merge Request](/docs/img/cherry_pick_changes_mr.png)](/docs/img/cherry_pick_changes_mr.png)
单击该按钮后,会出现一个弹窗,将显示一个分支过滤器搜索框,您可以在其中选择:
......@@ -17,13 +17,13 @@ Cherry-pick 是 Git 中非常强大的一个功能,通过在合并请求和提
当您选择一个合并提交时,系统会向相关的合并请求讨论中添加系统注释,使新提交与现有合并请求相关联。
每个部署的[关联合并请求列表](../../../api/deployments.html#list-of-merge-requests-associated-with-a-deployment)都将包括 Cherry-pick 的合并提交。
每个部署的关联合并请求列表都将包括 Cherry-pick 的合并提交。
## Cherry-pick 一个提交[](#cherry-picking-a-commit "Permalink")
您可以从提交详细信息页面中挑选一个提交:
[![Cherry-pick commit](/../../docs/img/cherry_pick_changes_commit.png)](img/cherry_pick_changes_commit.png)
[![Cherry-pick commit](/docs/img/cherry_pick_changes_commit.png)](/docs/img/cherry_pick_changes_commit.png)
与选择合并请求类似,您可以选择将更改直接选择到目标分支中,也可以选择创建新的合并请求以选择更改。
......
# 创建合并请求[](#创建合并请求 "Permalink")
在创建合并请求之前,请通读"合并请求"的[简介,](getting_started.html)以熟悉概念、术语,并了解如何使用它们。
每个合并请求都从创建一个分支开始,您可以通过[命令行](#new-merge-request-from-your-local-environment) ,Git CLI 应用程序或[CODEChina WEB](#new-merge-request-from-a-new-branch-created-through-the-ui)完成分支的创建。
本文档介绍了创建合并请求的几种方法。
......@@ -12,133 +10,113 @@
## 新建合并请求[](#new-merge-request-page "Permalink")
在" **新合并请求"**页面上,首先填写**合并请求**的标题和描述. 如果分支上已经有提交,则标题将用第一条提交消息的第一行预填充,描述将用提交消息中的任何其他行预填充. 在所有情况下,标题都是唯一的必填字段.
在此处,您可以在其中填充信息(标题,描述,受让人,里程碑,标签,批准人),然后点击**创建合并请求** .
在" **新合并请求"**页面上,首先填写**合并请求**的标题和描述,如果分支上已经有提交,则标题将用第一条提交消息的第一行预填充,描述将用提交消息中的任何其他行预填充。在所有情况下,标题都是唯一的必填字段。
初始屏幕上,您还可以查看提交合并请求之前推送到分支的所有提交,管道和文件更改.
此处,您可以在其中填充信息(标题,描述,指派人,里程碑,标签,批准人),然后点击**创建合并请求**
[![New Merge Request page](img/9255a795b62eb0bbe1c91eab2f85c149.png)](img/new_merge_request_page_v12_6.png)
在初始屏幕上,您还可以查看提交合并请求之前推送到分支的所有提交,管道和文件更改。
**提示:**您可以在创建合并请求之前将一次或多次推送到 GitLab 中的分支.
**提示:**您可以在创建合并请求之前将一次或多次推送到 CODEChina 中的分支。
## Create Merge Request button[](#create-merge-request-button "Permalink")
## 创建合并请求按钮[](#create-merge-request-button "Permalink")
将新分支推送到 GitLab 后,请访问 GitLab 中的存储库,并在屏幕顶​​部看到一个号召性用语,您可以从中单击**创建合并请求**按钮.
[![Create Merge Request button](img/2257f7989872604ba6ce6506ba811b15.png)](img/create_merge_request_button_v12_6.png)
将新分支推送到 CODEChina 后,请访问 CODEChina 中的代码仓库,并在屏幕顶​​部看到一个提示,您可以从中单击**创建合并请求**按钮。
您还可以在以下页面的右上方看到" **创建合并请求"**按钮:
* **Project** page.
* **资料库>文件** page.
* **合并请求** page.
* 项目页
* **代码>文件**
* **合并请求**
In this case, GitLab will use the most recent branch you pushed changes to as the source branch, and the default branch in the current project as the target.
这种情况下,系统将使用您将更改推送到的最新分支作为源分支,并将当前项目中的默认分支用作目标分支。
## New merge request by adding, editing, and uploading a file[](#new-merge-request-by-adding-editing-and-uploading-a-file "Permalink")
## 通过添加、编辑和上传文件来新建合并请求[](#new-merge-request-by-adding-editing-and-uploading-a-file "Permalink")
当您选择通过 GitLab UI 编辑,添加或上传文件时,在文件末尾,您会看到以下选项:添加**Commit 消息** ,选择该**提交****Target 分支** ,然后选中**Start new**复选框. **具有这些更改的合并请求** .
当您选择通过在界面上 编辑,添加或上传文件,在文件末尾,您会看到以下选项:添加**提交消息** ,选择该**提交****目标分支** ,然后选中**开始新建**复选框, **具有这些更改的合并请求**
同样,如果通过 Web IDE 更改文件,则在左侧边栏中导航到" **提交"**时,将看到这些相同的选项.
同样,如果通过 Web IDE 更改文件,则在左侧边栏中导航到" **提交"**时,将看到这些相同的选项
添加,编辑或上传文件后,请执行以下操作:
1. 在提交消息中描述您的更改.
2. 选择一个现有分支以将您的提交添加到其中,或者,如果您想创建一个新分支,请键入新的分支名称(不带空格,大写字母或特殊字符).
3. 保持选中复选框以立即开始新的合并请求,或者取消选中该复选框以在开始合并请求之前向该分支添加更多更改.
4. Click **提交变更**.
1. 在提交消息中描述您的更改
2. 选择一个现有分支以将您的提交添加到其中,或者,如果您想创建一个新分支,请键入新的分支名称(不带空格,大写字母或特殊字符)
3. 保持选中复选框以立即开始新的合并请求,或者取消选中该复选框以在开始合并请求之前向该分支添加更多更改
4. 单击 **提交变更**
如果您选择开始合并请求,则将转到" [**新合并请求"**页面](#new-merge-request-page) ,您可以在其中填写信息并提交合并请求.
如果您选择开始合并请求,则将转到" [**新合并请求"**页面](#new-merge-request-page) ,您可以在其中填写信息并提交合并请求
合并请求将针对存储库的默认分支. 如果要更改它,可以稍后通过编辑合并请求来进行更改.
合并请求将针对存储库的默认分支,如果要更改它,可以稍后通过编辑合并请求来进行更改。
## New merge request from a new branch created through the UI[](#new-merge-request-from-a-new-branch-created-through-the-ui "Permalink")
## 来自新建分支的合并请求[](#new-merge-request-from-a-new-branch-created-through-the-ui "Permalink")
要通过 GitLab UI 快速开始处理文件,请导航至项目的" **存储库">"分支"** ,然后单击" **新建分支"** . 将创建一个新分支,您可以开始编辑文件.
要通过界面快速开始处理文件,请导航至项目的" **代码">"分支"** ,然后单击" **新建分支"** ,将创建一个新分支,您可以开始编辑文件。
提交并推送后,您可以单击" [**创建合并请求"**](#create-merge-request-button)按钮以打开" [**新合并请求"**页面](#new-merge-request-page) . 将使用当前分支作为源,并使用当前项目中的默认分支作为目标来启动新的合并请求.
提交并推送后,您可以单击" [**创建合并请求"**](#create-merge-request-button)按钮以打开" [**新合并请求"**页面](#new-merge-request-page), 将使用当前分支作为源,并使用当前项目中的默认分支作为目标来启动新的合并请求。
## New merge request from your local environment[](#new-merge-request-from-your-local-environment "Permalink")
## 从本地新建合并请求[](#new-merge-request-from-your-local-environment "Permalink")
假设您已将存储库克隆到计算机中,并且想要开始处理文件更改,请先创建并签出一个新分支:
假设您已将代码仓库克隆到计算机中,并且想要开始处理文件更改,请先创建并签出一个新分支:
```
```markdown
git checkout -b my-new-branch
```
处理文件更改,暂存并提交它们:
```
```markdown
git add .
git commit -m "My commit message"
```
完成后, [将分支推送到 GitLab](../../../gitlab-basics/start-using-git.html#send-changes-to-gitlabcom)
完成后,将分支推送到 CODEChina
```
```markdown
git push origin my-new-branch
```
在输出中,GitLab 将提示您一个直接链接来创建合并请求:
```
```markdown
...
remote: To create a merge request for docs-new-merge-request, visit:
remote: https://gitlab-instance.com/my-group/my-project/merge_requests/new?merge_request%5Bsource_branch%5D=my-new-branch
remote: https://codechina.csdn.net/my-group/my-project/merge_requests/new?merge_request%5Bsource_branch%5D=my-new-branch
```
复制该链接并将其粘贴到浏览器中,将显示" [**新合并请求"页面**](#new-merge-request-page) .
[通过命令行推送时](../push_options.html)[还可以向命令添加](../push_options.html)一些[标志,](../push_options.html)以减少通过 UI 手动编辑合并请求的需要.
如果您没有通过命令行将分支推送到 GitLab(例如,您使用 Git CLI 应用程序来推送更改),则可以通过单击" [**创建合并请求"**](#create-merge-request-button)按钮通过 GitLab UI [**创建合并请求**](#create-merge-request-button) .
## New merge request from an issue[](#new-merge-request-from-an-issue "Permalink")
您也可以[直接从 issue 创建一个新的合并请求](../repository/web_editor.html#create-a-new-branch-from-an-issue) .
## New merge request from the Merge Requests page[](#new-merge-request-from-the-merge-requests-page "Permalink")
您可以通过在项目中的" **合并请求"**页面上单击" **新建合并请求"**按钮来开始创建新的合并请求. 然后选择包含更改的源项目和分支,以及要将更改合并到的目标项目和分支. 单击**比较分支,然后继续**转到" [**新合并请求"**页面](#new-merge-request-page)并填写详细信息.
## New merge request from a fork[](#new-merge-request-from-a-fork "Permalink")
分叉项目并应用本地更改后,请完成以下步骤,从您的 fork 创建一个合并请求以贡献回主项目:
1. 转到**项目>您的项目,**然后选择存储库的分支.
2. 在左侧菜单中,转到**合并请求** ,然后点击**新建合并请求** .
3. 在" **源分支"**下拉列表框中,在分支的存储库中选择您的分支作为源分支.
4. 在" **目标分支"**下拉列表框中,从上游存储库中选择分支作为目标分支.
5. 输入凭据后,单击" **比较分支",然后继续**将本地更改与上游存储库进行比较.
6. 分配用户以查看您的更改,然后点击**提交合并请求** .
在通过命令行推送时 ,还可以向命令添加一些标志,以减少通过界面手动编辑合并请求的需要。
合并更改后,您的更改将按照规范添加到上游存储库和分支中. 合并工作后,如果您不想对上游项目做出任何其他贡献,则可以通过[删除分支关系](../settings/index.html#removing-a-fork-relationship) ,在**Settings> Advanced Settings**部分[中将 fork 与](../settings/index.html#removing-a-fork-relationship)上游项目断开链接.
如果您没有通过命令行将分支推送到 CODEChina(例如,您使用 Git CLI 应用程序来推送更改),则可以通过单击" [**创建合并请求"**](#create-merge-request-button)按钮 [**创建合并请求**](#create-merge-request-button)
有关更多详细信息, [请参阅分叉工作流文档](../repository/forking_workflow.html) .
## 从 Issue 新建合并请求[](#new-merge-request-from-an-issue "Permalink")
## New merge request by email[](#new-merge-request-by-email-core-only "Permalink")
您也可以[直接从 issue 创建一个新的合并请求](/docs/user/project/repo/web-editor.md#create-a-new-branch-from-an-issue)
*要使用此功能,需要由 GitLab 管理员配置[传入电子邮件](../../../administration/incoming_email.html)才能使用.* 它在 GitLab.com 中不可用.
## 从合并请求列表页新建合并请求[](#new-merge-request-from-the-merge-requests-page "Permalink")
您可以通过将电子邮件发送到特定于用户的电子邮件地址来创建新的合并请求. 通过单击**将新的合并请求**通过**电子邮件发送到该项目**按钮,可以在合并请求页面上获取地址. 该主题将用作新合并请求的源分支名称,而目标分支将是项目的默认分支. 消息正文(如果不为空)将用作合并请求描述. 您需要启用["通过电子邮件回复"](../../../administration/reply_by_email.html)才能使用此功能. 如果您的实例未启用它,则可以要求您的 GitLab 管理员这样做.
您可以通过在项目中的" **合并请求"**页面上单击" **新建合并请求"**按钮来开始创建新的合并请求,然后选择包含更改的源项目和分支,以及要将更改合并到的目标项目和分支。单击**比较分支,然后继续**转到" [**新合并请求"**页面](#new-merge-request-page)并填写详细信息。
这是一个私人电子邮件地址,仅为您生成. **将其保存在自己**手中,因为拥有它的任何人都可以像您一样创建问题或合并请求. 您可以将此地址添加到您的联系人列表中以便于访问.
## 从 Fork 项目新建合并请求[](#new-merge-request-from-a-fork "Permalink")
[![Create new merge requests by email](img/4f0a47acf91c1135738d76e1c06eec3a.png)](img/create_from_email.png)
Fork 项目在本地更改后,可以通过以下步骤从 fork 创建一个合并请求以贡献回主项目:
*在 GitLab 11.7 中,我们更新了生成的电子邮件地址的格式. 但是,仍支持较旧的格式,从而允许现有别名或联系人继续工作.*
1. 转到**项目>您的项目,**然后选择代码仓库的分支
2. 转到**合并请求** ,然后点击**新建合并请求**
3. 在" **源分支"**下拉列表框中,在分支的存储库中选择您的分支作为源分支
4. 在" **目标分支"**下拉列表框中,从上游存储库中选择分支作为目标分支
5. 输入凭据后,单击" **比较分支",然后继续**将本地更改与上游存储库进行比较
6. 分配用户以查看您的更改,然后点击**提交合并请求**
### Adding patches when creating a merge request via e-mail[](#adding-patches-when-creating-a-merge-request-via-e-mail "Permalink")
合并更改后,您的更改将按照规范添加到上游存储库和分支中. 合并工作后,如果您不想对上游项目做出任何其他贡献,则可以通过[删除分支关系](/docs/user/project/settings.md#removing-a-fork-relationship) ,在**项目设置> 高级设置**部分[中将 fork 与](/docs/user/project/settings.md#removing-a-fork-relationship)上游项目断开链接。
在 GitLab 11.5 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/22723) .
### 将补丁添加为电子邮件附件[](#adding-patches-when-creating-a-merge-request-via-e-mail "Permalink")
您可以通过将补丁添加为电子邮件的附件,将提交添加到正在创建的合并请求中. 文件名以`.patch`结尾的所有附件都将被视为补丁程序,并将按名称顺序对其进行处理.
您可以通过将补丁添加为电子邮件的附件,将提交添加到正在创建的合并请求中。文件名以`.patch`结尾的所有附件都将被视为补丁程序,并将按名称顺序对其进行处理。
补丁的总大小可以是 2MB.
补丁的总大小不超过 2MB。
如果主题的源分支不存在,那么将从存储库的 HEAD 或指定的目标分支创建源分支以应用补丁. 可以使用[`/target_branch`快速操作](../quick_actions.html)指定目标分支. 如果源分支已经存在,则将在其顶部应用补丁.
如果主题的源分支不存在,那么将从存储库的 HEAD 或指定的目标分支创建源分支以应用补丁。可以使用[`/target_branch`快速操作](/docs/user/project/quick-actions.md)指定目标分支。如果源分支已经存在,则将在其顶部应用补丁。
## Reviewing and managing Merge Requests[](#reviewing-and-managing-merge-requests "Permalink")
## 审查和管理合并请求[](#reviewing-and-managing-merge-requests "Permalink")
提交合并请求后,可以通过 GitLab 进行[审查和管理](reviewing_and_managing_merge_requests.html) .
\ No newline at end of file
提交合并请求后,可以通过 CODEChina 进行[审查和管理](/docs/user/project/merge-request/reviewing.md)
\ No newline at end of file
......@@ -10,7 +10,7 @@
*`[Draft]``Draft:``(Draft)`到合并请求标题的开头,单击标题框下的" **以草稿开始标题:** ",在编辑合并请求的描述时将具有相同的效果
* **不推荐使用**`[WIP]``WIP:`添加到合并请求标题的开头,**WIP**仍然有效,但我们推荐使用**Draft**
* 在合并请求的讨论中添加`/wip` [快速操作](../quick_actions.html#quick-actions-for-issues-merge-requests-and-epics)注释 ,可以重复进行并切换合并请求的状态。请注意,注释中的任何其他文本都将被丢弃
* 在合并请求的讨论中添加`/wip` [快速操作](/docs/user/project/quick-actions.md#quick-actions-for-issues-merge-requests-and-epics)注释 ,可以重复进行并切换合并请求的状态。请注意,注释中的任何其他文本都将被丢弃
*`draft:``Draft:`添加到针对合并请求的源分支的提交消息的开头,这不会切换合并请求的状态,并且在另一次提交中再次执行将无效
## 移除合并请求中的 Draft/WIP 标记[](#removing-the-draft-flag-from-a-merge-request "Permalink")
......@@ -18,7 +18,7 @@
与上述类似,当准备合并请求时,可以通过以下几种方式移除" `Draft`标记:
* 从合并请求标题的开头删除`[Draft]``Draft:``(Draft)` ,在编辑合并请求的描述时,在标题框下单击**从标题中删除草稿:前缀** ,将具有相同的效果
* 在合并请求的讨论中添加`/wip` [快速操作](../quick_actions.html#quick-actions-for-issues-merge-requests-and-epics) 注释,可以重复进行并切换合并请求的状态。请注意,注释中的任何其他文本都将被丢弃
* 在合并请求的讨论中添加`/wip` [快速操作](/docs/user/project/quick-actions.md#quick-actions-for-issues-merge-requests-and-epics) 注释,可以重复进行并切换合并请求的状态。请注意,注释中的任何其他文本都将被丢弃
* 点击靠近合并请求描述底部的*移除 WIP 状态**按钮,该按钮对至少具有 Developer 权限的用户才可见
## 通过 WIP 过滤合并请求[](#includingexcluding-wip-merge-requests-when-searching "Permalink")
......
......@@ -12,11 +12,11 @@
1. 在创建或编辑合并请求时启用允许协助
[![Enable contribution](/../../docs/img/allow_collaboration.png)](img/allow_collaboration.png)
[![Enable contribution](/docs/img/allow_collaboration.png)](/docs/img/allow_collaboration.png)
2. 创建合并请求后,您将看到允许可以合并到目标分支的成员的提交
[![Check that contribution is enabled](img/allow_collaboration_after_save.png)](img/allow_collaboration_after_save.png)
[![Check that contribution is enabled](/docs/img/allow_collaboration_after_save.png)](/docs/img/allow_collaboration_after_save.png)
## 上游项目成员推送代码至 Fork 项目[](#pushing-to-the-fork-as-the-upstream-member "Permalink")
......
......@@ -6,7 +6,7 @@
在解决所有冲突之前,系统将阻止合并请求。冲突可以在本地解决,许多情况下在 CODEChina 网页上也可以解决(有关何时可用的信息,请参见可解决的[冲突](#conflicts-available-for-resolution) )。
[![Merge request widget](/../../docs/img/merge_request_widget.png)](img/merge_request_widget.png)
[![Merge request widget](/docs/img/merge_request_widget.png)](/docs/img/merge_request_widget.png)
**注意:** CODEChina 通过在未自动合并到目标分支的源分支中创建合并提交来解决冲突,这样可以在合并更改之前在源分支对合并提交进行检查和测试,从而在更改进入目标分支前防止没有检查或破坏构建导致的意外。
......@@ -14,7 +14,7 @@
单击此按钮将显示有冲突的文件列表,突出显示冲突部分:
[![Conflict section](/../../docs/img/conflict_section.png)](img/conflict_section.png)
[![Conflict section](/docs/img/conflict_section.png)](/docs/img/conflict_section.png)
当所有冲突都标记为使用"我们的"或"他们的"时,则可以解决冲突。这将执行合并请求的目标分支到源分支的合并,并使用选择的选项解决冲突。如果源分支是`feature` ,目标分支是`master` ,则类似于执行`git checkout feature; git merge master` `git checkout feature; git merge master`本地`git checkout feature; git merge master`
......@@ -22,7 +22,7 @@
合并冲突编辑模式可以让您在 CODEChina 界面中解决更复杂的合并冲突,比如需要用户手动修改文件才能解决的冲突。使用**内联编辑**按钮打开编辑器. 确定更改后,请单击**提交到源分支**按钮。
[![Merge conflict editor](/../../docs/img/merge_conflict_editor.png)](img/merge_conflict_editor.png)
[![Merge conflict editor](/docs/img/merge_conflict_editor.png)](/docs/img/merge_conflict_editor.png)
## 可解决的冲突[](#conflicts-available-for-resolution "Permalink")
......
# 评审及管理合并请求[](#评审及管理合并请求 "Permalink")
合并请求是在项目中更改文件的主要方法,通过[创建并提交合并请求](creating_merge_requests.html)来提出更改,然后将其审核并接受(或拒绝)。
合并请求是在项目中更改文件的主要方法,通过[创建并提交合并请求](/docs/user/project/merge-request/create-merge-request.md)来提出更改,然后将其审核并接受(或拒绝)。
## 评审合并请求[](#view-project-merge-requests "Permalink")
打开 **项目>合并请求**列表,可以查看项目中的所有**合并请求**,并且您可以快速按打开和关闭可用的选项卡来进行过滤,您还可以[搜索和过滤结果](../../search/index.html#filtering-issue-and-merge-request-lists)
打开 **项目>合并请求**列表,可以查看项目中的所有**合并请求**,并且您可以快速按打开和关闭可用的选项卡来进行过滤,您还可以[搜索和过滤结果](/docs/user/search.md#filtering-issue-and-merge-request-lists)
[![Project merge requests list view](img/project_merge_requests_list_view.png)](img/project_merge_requests_list_view.png)
[![Project merge requests list view](/docs/img/project_merge_requests_list_view.png)](/docs/img/project_merge_requests_list_view.png)
## 半线性历史合并请求[](#semi-linear-history-merge-requests "Permalink")
......@@ -35,7 +35,7 @@ Diff 视图包含以下内容:
**更改**选项卡中查看更改时,可以使用文件树或文件列表来浏览差异。 在具有许多更改的大型差异中滚动时,可以使用文件树或文件列表快速跳转到任何更改的文件。
[![Merge request diff file navigation](/docs/img/merge_request_diff_file_navigation.png)](docs/img/merge_request_diff_file_navigation.png)
[![Merge request diff file navigation](/docs/img/merge_request_diff_file_navigation.png)](/docs/img/merge_request_diff_file_navigation.png)
### 逐个文件查看 diff[](#file-by-file-diff-navigation "Permalink")
......@@ -43,7 +43,7 @@ Diff 视图包含以下内容:
从那里,在查看合并请求的" **更改"**选项卡时,一次只能看到一个文件. 然后,您可以单击按钮上**一个****下一个**以查看其他已更改的文件.
[![File-by-file diff navigation](/docs/img/file_by_file_v13_2.png)](docs/img/file_by_file_v13_2.png)
[![File-by-file diff navigation](/docs/img/file_by_file_v13_2.png)](/docs/img/file_by_file_v13_2.png)
### 合并请求提交导航[](#merge-requests-commit-navigation "Permalink")
......@@ -73,12 +73,12 @@ Diff 视图包含以下内容:
| 功能 | 描述 |
| --- | --- |
| [批量编辑合并请求](../project/bulk_edit.md) | 同时更新多个合并请求的属性 |
| [Cherry-pick 变更](cherry_pick.md) | 只需在合并的合并请求或提交中单击**Cherry-pick**按钮,即可在页面中 Cherry-pick 任何**选择** |
| [快进合并](fast_forward.md) | 有关线性 Git 历史记录以及接受合并请求而不创建合并提交的方法 |
| [合并请求版本](versions.md) | 选择并比较合并请求差异的不同版本 |
| [解决冲突](resolve_conflicts.md) |可以在界面中来解决某些合并请求冲突 |
| [Revert 更改](revert.md) | 从合并请求中的任何提交还原更改 |
| [批量编辑合并请求](/docs/user/project/bulk-edit.md) | 同时更新多个合并请求的属性 |
| [Cherry-pick 变更](/docs/user/project/merge-request/cherry-pick.md) | 只需在合并的合并请求或提交中单击**Cherry-pick**按钮,即可在页面中 Cherry-pick 任何**选择** |
| [快进合并](/docs/user/project/merge-request/fast-forward.md) | 有关线性 Git 历史记录以及接受合并请求而不创建合并提交的方法 |
| [合并请求版本](/docs/user/project/merge-request/versions.md) | 选择并比较合并请求差异的不同版本 |
| [解决冲突](/docs/user/project/merge-request/resolve-conflicts.md) |可以在界面中来解决某些合并请求冲突 |
| [Revert 更改](/docs/user/project/merge-request/revert.md) | 从合并请求中的任何提交还原更改 |
## Tips[](#tips "Permalink")
......
......@@ -23,8 +23,6 @@
可以在合并合并请求之前对其进行自定义。
[![A squash commit message editor](img/618ce3d47266d9b45262489065b68cf7.png)](img/squash_mr_message.png)
**注意:**在此示例中,压缩的提交之后是合并提交,因为此示例代码仓库的合并方法使用了合并提交。
Squash 也适用于快进合并策略,有关更多详细信息,请参见[压缩和快进合并](#squash-and-fast-forward-merge)
......
# 里程碑[](#里程碑 "Permalink")
# 里程碑[](#milestone "Permalink")
## Overview[](#overview "Permalink")
## 概览[](#overview "Permalink")
GitLab 中的里程碑是一种跟踪问题并合并为在一定时期内实现更广泛目标而创建的请求的方法.
CODEChina 中的里程碑是一种跟踪 Issue 及合并请求并在一定时期内实现更广泛目标的方法。
里程碑使您可以组织问题并将请求合并到一个紧密联系的组中,并带有一个可选的开始日期和一个可选的截止日期.
里程碑使您可以将 Isuue 及合并请求组织到一个紧密联系的组中,并带有一个可选的开始日期和一个可选的截止日期。
## Milestones as Agile sprints[](#milestones-as-agile-sprints "Permalink")
## 用户敏捷 Sprint[](#milestones-as-agile-sprints "Permalink")
里程碑可用作敏捷冲刺,因此您可以跟踪所有问题并合并与特定冲刺有关的请求. 为此:
里程碑可用作敏捷 Sprint,因此您可以跟踪所有问题并合并与特定冲刺有关的请求. 为此:
1. 设置里程碑的开始日期和截止日期,以代表敏捷冲刺的开始和结束.
2. 将里程碑标题设置为敏捷 sprint 的名称,例如`November 2018 sprint` .
3. 通过将问题的右侧边栏关联到所需的里程碑,将问题添加到敏捷冲刺中.
1. 设置里程碑的开始日期和截止日期,以代表敏捷冲刺的开始和结束
2. 将里程碑标题设置为敏捷 sprint 的名称,例如`November 2018 sprint`
3. 通过将问题的右侧边栏关联到所需的里程碑,将问题添加到敏捷 Sprint中
## Milestones as releases[](#milestones-as-releases "Permalink")
## 用里程碑来 Release[](#milestones-as-releases "Permalink")
同样,里程碑可以用作发布. 为此:
同样,里程碑可以用作 Release,为此:
1. 设置里程碑到期日期以表示发布的发布日期,并将里程碑开始日期保留为空白.
2. 将里程碑标题设置为您的发行版,例如`Version 9.4` .
3. 通过关联问题右侧的期望里程碑,将问题添加到您的发行中.
1. 设置里程碑到期日期以表示发布的发布日期,并将里程碑开始日期保留为空白
2. 将里程碑标题设置为您的发行版,例如`Version 9.4`
3. 通过关联问题右侧的期望里程碑,将问题添加到您的发行中
此外,您可以将里程碑与 GitLab 的[Releases 功能](../releases/index.html#associate-milestones-with-a-release)集成.
此外,您可以将里程碑与 CODEChina 的[Releases 功能](/docs/user/project/releases.md#associate-milestones-with-a-release)集成.
## Project milestones and group milestones[](#project-milestones-and-group-milestones "Permalink")
## 项目里程碑和组织里程碑[](#project-milestones-and-group-milestones "Permalink")
您可以将**项目里程碑**分配给问题或仅合并该项目中的请求. 要查看项目里程碑列表,请在项目中转到 **问题>里程碑** .
您可以将**项目里程碑**分配给问题或仅合并该项目中的请求,要查看项目里程碑列表,请在项目中转到 **问题>里程碑**
您可以将**组里程碑**分配给该**组**中任何项目的任何发行或合并请求. 要查看组里程碑列表,请在组中转到 **问题>里程碑** .
您可以将**组里程碑**分配给该**组**中任何项目的任何发行或合并请求,要查看组里程碑列表,请在组中转到 **组织设置>里程碑**
您还可以在仪表板里程碑列表中查看您有权访问的所有里程碑. 要查看您可以访问的项目里程碑和组里程碑,请单击顶部导航栏上的**更多>里程碑** .
## 新建里程碑[](#creating-milestones "Permalink")
有关项目和组里程碑 API 的信息,请参阅:
**注意:**创建里程碑需要[ Developer 或更高](/docs/user/permissions.md)级别的权限。
* [Project Milestones API](../../../api/milestones.html)
* [Group Milestones API](../../../api/group_milestones.html)
### 新建项目里程碑[](#new-project-milestone "Permalink")
**注意:**如果您在一个小组中,然后单击**问题>里程碑** ,您将看到小组里程碑和该小组中的项目里程碑. 如果您在项目中,然后单击" **问题">"里程碑"** ,则只会看到该项目的里程碑.
可以通过以下步骤创建**项目里程碑**
## Creating milestones[](#creating-milestones "Permalink")
1. 在一个项目中,转到 ** Issue >里程碑**
2. 单击 **新里程碑**
3. 输入标题,可选描述,可选开始日期和可选截止日期
4. 单击 **新建里程碑**
**注意:**创建里程碑需要[开发者或更高](../../permissions.html)级别的权限.
### 新建组织里程碑[](#new-group-milestone "Permalink")
### New project milestone[](#new-project-milestone "Permalink")
可以通过以下步骤创建**组织里程碑**
创建**项目里程碑**
1. 在一个小组中,进入到 **组织设置>里程碑**
2. 单击 **新里程碑**
3. 输入标题,可选描述,可选开始日期和可选截止日期
4. 单击 **新建里程碑**
1. 在一个项目中,转到 **问题>里程碑** .
2. Click **新的里程碑**.
3. 输入标题,可选描述,可选开始日期和可选截止日期.
4. Click **新的里程碑**.
## 编辑里程碑[](#editing-milestones "Permalink")
[![New project milestone](img/9807a6b10b783af2ed7c8703958f017a.png)](img/milestones_new_project_milestone.png)
**注意:**编辑里程碑需要[ Developer 或更高的](/docs/user/permissions.md)权限级别。
### New group milestone[](#new-group-milestone "Permalink")
可以通过以下步骤编辑里程碑:
创建**组里程碑**
1. 在项目中进入** Issue > 里程碑** ,或在组织中进入**组织设置 > 里程碑**
2. 单击里程碑标题
3. 单击**编辑**按钮
1. 在一个小组中,转到 **问题>里程碑** .
2. Click **新的里程碑**.
3. 输入标题,可选描述,可选开始日期和可选截止日期.
4. Click **新的里程碑**.
您可以通过单击" **删除"**按钮来删除里程碑。
[![New group milestone](img/4d2f841f1dee2bdbbdcd14bd5518c000.png)](img/milestones_new_group_milestone.png)
### 将项目里程碑提升为组织里程碑[](#promoting-project-milestones-to-group-milestones "Permalink")
## Editing milestones[](#editing-milestones "Permalink")
如果要在同一个组织中将里程碑从几个项目扩展到更多项目,则可能需要在同一组中的多个项目中共享里程碑。如果以前创建了一个项目里程碑,现在要使其可用于同一组中的其他项目,则可以将其升级为组里程碑。
**注意:**编辑里程碑需要[开发者或更高的](../../permissions.html)权限级别.
在项目里程碑列表页面,您可以将项目里程碑升级为组里程碑。这会将具有相同名称的该组中所有项目中的所有项目里程碑合并为一个组里程碑,以前已分配给这些项目里程碑之一的所有问题和合并请求现在都将分配给新的组里程碑。注意:此操作不能撤消,更改是永久的。
要编辑里程碑:
**警告:**将项目里程碑提升为组里程碑时,某些信息会丢失。组里程碑视图上并非项目里程碑视图上的所有功能都可用,如果将项目里程碑升级为组里程碑,则将失去这些功能。请参阅" [里程碑"](#milestone-view)视图以查看组里程碑视图中缺少哪些功能。
1. 在项目或小组中,转到 **问题>里程碑** .
2. 单击里程碑标题.
3. Click **Edit**.
## 设置里程碑[](#assigning-milestones-from-the-sidebar "Permalink")
您可以通过单击" **删除"**按钮来删除里程碑.
可以为每个 Issue 及合并请求分配一个里程碑,里程碑在边栏中的每个 Issue 及合并请求页面上可见,它们在看板上也可见。您可以在页面右侧为对象分配或取消里程碑。您也可以在讨论中[快速](/docs/user/project/quick-actions.md)执行此操作。 [如前所述](#project-milestones-and-group-milestones) ,对于给定的发布或合并请求,可以选择项目里程碑和组里程碑并将其分配给对象。
### Promoting project milestones to group milestones[](#promoting-project-milestones-to-group-milestones "Permalink")
## 按里程碑过滤 Issue 及合并请求[](#filtering-issues-and-merge-requests-by-milestone "Permalink")
If you are expanding from a few projects to a larger number of projects within the same group, you may want to share the same milestone among multiple projects in the same group. If you previously created a project milestone and now want to make it available for other projects within the same group, you can promote it to a group milestone.
### 在列表页过滤[](#filtering-in-list-pages "Permalink")
从项目里程碑列表页面,您可以将项目里程碑升级为组里程碑. 这会将具有相同名称的该组中所有项目中的所有项目里程碑合并为一个组里程碑. 以前已分配给这些项目里程碑之一的所有问题和合并请求现在都将分配给新的组里程碑. 此操作不能撤消,更改是永久的.
在项目 Issue、合并请求列表页面和用户的 Issue 及合并请求列表页面中,可以按组里程碑和项目里程碑进行[筛选](/docs/user/search.md#issues-and-merge-requests) .
**警告:**从 GitLab 12.4 和更早版本开始,将项目里程碑提升为组里程碑时,某些信息会丢失. 组里程碑视图上并非项目里程碑视图上的所有功能都可用. 如果将项目里程碑升级为组里程碑,则将失去这些功能. 请参阅" [里程碑"视图,](#milestone-view)以查看组里程碑视图中缺少哪些功能.
### 在看板上过滤[](#filtering-in-issue-boards "Permalink")
[![Promote milestone](img/e14dc9ee9528f343daf09a4dd5340b99.png)](img/milestones_promote_milestone.png)
*[项目看板上](/docs/user/project/kanban.md) ,您可以在[搜索和过滤器栏中](/docs/user/search.md#issue-boards)按组里程碑和项目里程碑进行[筛选](/docs/user/search.md#issue-boards)
## Assigning milestones from the sidebar[](#assigning-milestones-from-the-sidebar "Permalink")
### 特殊里程碑过滤[](#special-milestone-filters "Permalink")
可以为每个问题和合并请求分配一个里程碑. 里程碑在边栏中的每个问题和合并请求页面上可见. 它们在发行板上也可见. 您可以从边栏中为对象分配或取消分配里程碑. 您也可以在评论中[快速](../quick_actions.html)执行此[操作](../quick_actions.html) . [如前所述](#project-milestones-and-group-milestones) ,对于给定的发布或合并请求,可以选择项目里程碑和组里程碑并将其分配给对象.
在按里程碑进行筛选时,除了选择特定的项目里程碑或组里程碑之外,还可以选择特殊的里程碑筛选器:
## Filtering issues and merge requests by milestone[](#filtering-issues-and-merge-requests-by-milestone "Permalink")
* **无** :显示问题或没有分配里程碑的合并请求
* **任何** :显示问题或合并具有指定里程碑的请求
* **即将到来的** :显示已分配的公开里程碑的问题或合并请求,该里程碑具有下一个即将到来的到期日(即将来的最近到期日)
* **已开始** :显示具有打开的指定里程碑且开始日期在今天之前的问题或合并请求
### Filtering in list pages[](#filtering-in-list-pages "Permalink")
## 认识里程碑[](#milestone-view "Permalink")
在项目发布/合并请求列表页面和组发布/合并请求列表页面中,可以按组里程碑和项目里程碑进行[筛选](../../search/index.html#issues-and-merge-requests) .
里程碑视图显示标题和描述,这些标签下面还包含显示以下内容的标签:
### Filtering in issue boards[](#filtering-in-issue-boards "Permalink")
*[项目发布板上](../issue_board.html) ,您可以在[搜索和过滤器栏中](../../search/index.html#issue-boards)按组里程碑和项目里程碑进行[筛选](../../search/index.html#issue-boards) .
*[组发布板上](../issue_board.html#group-issue-boards-premium) ,您只能在[搜索和过滤器栏中](../../search/index.html#issue-boards)按组里程碑进行[过滤](../../search/index.html#issue-boards) .
*[项目发行板中](../issue_board.html) ,可以在[发行板配置中](../issue_board.html#configurable-issue-boards-starter)按组里程碑和项目里程碑进行筛选.
*[组发行板上,](../issue_board.html#group-issue-boards-premium)您只能按[发行板配置](../issue_board.html#configurable-issue-boards-starter)中的组里程碑进行筛选.
### Special milestone filters[](#special-milestone-filters "Permalink")
在按里程碑进行筛选时,除了选择特定的项目里程碑或组里程碑之外,还可以选择特殊的里程碑筛选器.
* **无** :显示问题或没有分配里程碑的合并请求.
* **任何** :显示问题或合并具有指定里程碑的请求.
* **即将到来的** :显示已分配的公开里程碑的问题或合并请求,该里程碑具有下一个即将到来的到期日(即将来的最近到期日).
* **已开始** :显示具有打开的指定里程碑且开始日期在今天之前的问题或合并请求.
## Milestone view[](#milestone-view "Permalink")
里程碑视图显示标题和描述.
这些标签下面还包含显示以下内容的标签:
* **问题** :显示分配给里程碑的所有问题. 这些内容显示在名为:
* **Issue** :显示分配给里程碑的所有问题, 这些内容显示在名为:
* 未开始的问题(未解决和未分配)
* 进行中的问题(未解决和已分配)
* 已完成的问题(已关闭)
......@@ -128,26 +108,5 @@ If you are expanding from a few projects to a larger number of projects within t
* 等待合并(打开和未分配)
* 拒绝(关闭)
* 合并后
* **参与者** :显示分配给该里程碑的所有问题的受让人.
* **Labels**: Shows all labels that are used in issues assigned to the milestone.
### Project Burndown Charts[](#project-burndown-charts-starter "Permalink")
对于[GitLab Starter 中的](https://about.gitlab.com/pricing/)项目里程碑,里程碑视图中有一个[燃尽图](burndown_charts.html) ,显示完成里程碑的进度.
[![burndown chart](img/eb36e4acf26c49641689d1a05dd8fa8a.png)](img/burndown_chart.png)
### Group Burndown Charts[](#group-burndown-charts-premium "Permalink")
对于[GitLab Premium 中的](https://about.gitlab.com/pricing/)组里程碑,里程碑视图中有一个[燃尽图](burndown_charts.html) ,显示完成里程碑的进度.
### Milestone sidebar[](#milestone-sidebar "Permalink")
里程碑视图上的里程碑侧栏显示以下内容:
* 完成百分比,计算方式为已完成的问题数除以问题总数.
* 开始日期和截止日期.
* 在分配给里程碑的所有问题和合并请求上花费的总时间.
* 分配给里程碑的所有问题的总问题权重.
[![Project milestone page](img/11f64bd49fd604a4644dd54ed7e423e8.png)](img/milestones_project_milestone_page.png)
\ No newline at end of file
* **参与者** :显示分配给该里程碑的所有问题的指派人
* **标记**: 显示分配给该里程碑的所有问题包含的标记
\ No newline at end of file
# 保护分支[](#保护分支 "Permalink")
# 保护分支[](#protected-branch "Permalink")
GitLab 中的[权限](../permissions.html)基本上是围绕对存储库和分支具有读或写权限的想法定义的. 为了对某些分支机构施加进一步的限制,可以对其进行保护.
[权限](/docs/user/permissions.md)基本上是围绕对代码仓库和分支具有读或写权限的想法定义的,为了对某些分支机加进一步的限制,可以对其进行保护。
## Overview[](#overview "Permalink")
## 概览[](#overview "Permalink")
默认情况下,受保护的分支执行以下四个简单的操作:
默认情况下,受保护的分支执行以下四个简单的操作:
* 它会阻止除具有维护者权限的用户之外的所有用户创建它(如果尚未创建).
* 它可以防止除具有**允许的**权限的用户以外的其他任何人推送.
* 它可以防止**任何人**用力推动分支机构.
* 它可以防止**任何人**删除分支.
* 它会阻止除具有 maintainer 权限的用户之外的所有用户创建它(如果尚未创建)
* 它可以防止除具有**允许的**权限的用户以外的其他任何人推送
* 它可以防止**任何人**强行推送分支
* 它可以防止**任何人**删除分支
**注意:**允许 GitLab 管理员推送到受保护的分支.
## 配置保护分支[](#configuring-protected-branches "Permalink")
有关随时间的变化,请参见" [更改日志"](#changelog)部分.
要保护分支,您需要至少具有 maintainer 权限级别,请注意,默认情况下`master`分支是受保护的。
默认的分支保护级别在[管理区域中](../admin_area/settings/visibility_and_access_controls.html#default-branch-protection)设置.
1. 导航到项目的**"项目设置"➔"仓库"**
2. 滚动查找" **受保护的分支"**部分并展开
3. 从" **分支"**下拉菜单中,选择要保护的分支,然后单击" **保护"**
4. 完成后,受保护的分支将出现在"受保护的分支"列表中
## Configuring protected branches[](#configuring-protected-branches "Permalink")
## 启用允许合并及允许推送设置[](#using-the-allowed-to-merge-and-allowed-to-push-settings "Permalink")
要保护分支,您需要至少具有维护者权限级别. 请注意,默认情况下`master`分支是受保护的.
使用"允许推送"和"允许合并"设置,您可以控制不同角色可以在受保护分支中执行的操作。例如,您可以将"允许推送"设置为" None ",将"允许合并"设置为" developer + maintainer ",以要求*每个人都*提交合并请求,以请求更改进入受保护分支。
1. 导航到项目的**"设置"➔"存储库"**
2. 滚动查找" **受保护的分支"**部分.
3. 从" **分支"**下拉菜单中,选择要保护的分支,然后单击" **保护"** . 在下面的屏幕截图中,我们选择了`develop`分支.
但是,有些工作流程不需要这样做,只有防止强行推动和移除分支才有用。对于这些工作流程,您可以通过将"允许推送"设置为" developer + maintainer "来允许具有写访问权的每个人推送到受保护的分支。
[![Protected branches page](img/c29b503c10922622f8ec612bd5168b10.png)](img/protected_branches_page_v12_3.png)
您可以在创建受保护的分支时设置"允许推送"和"允许合并"选项,也可以在之后通过从"已保护"区域的下拉列表中选择所需的选项来设置。
4. 完成后,受保护的分支将出现在"受保护的分支"列表中.
如果在创建受保护的分支时未选择任何这些选项,则默认情况下会将它们设置为" maintainer "。
[![Protected branches list](img/265f035427185c0998b05886114d104b.png)](img/protected_branches_list_v12_3.png)
## 通配保护分支[](#wildcard-protected-branches "Permalink")
## Using the Allowed to merge and Allowed to push settings[](#using-the-allowed-to-merge-and-allowed-to-push-settings "Permalink")
在 GitLab 8.11 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081) .
从 GitLab 8.11 开始,我们增加了分支保护的另一层,它提供了对受保护分支的更精细的管理. "开发人员可以推送"选项由"允许推送"设置代替,该设置可以设置为允许/禁止维护者和/或开发人员推送到受保护的分支.
使用"允许推送"和"允许合并"设置,您可以控制不同角色可以在受保护分支中执行的操作. 例如,您可以将"允许推送"设置为"无人",将"允许合并"设置为"开发人员+维护人员",以要求*每个人都*提交合并请求,以请求更改进入受保护分支. 这与[GitLab 工作](../../topics/gitlab_flow.html)流程等[工作流程](../../topics/gitlab_flow.html)兼容.
但是,有些工作流程不需要这样做,只有防止强行推动和移除分支才有用. 对于这些工作流程,您可以通过将"允许推送"设置为"开发人员+维护人员"来允许具有写访问权的每个人推送到受保护的分支.
您可以在创建受保护的分支时设置"允许推送"和"允许合并"选项,也可以在之后通过从"已保护"区域的下拉列表中选择所需的选项来设置.
[![Developers can push](img/eca0c9ec85c6dfc8dbde06c368a9d94d.png)](img/protected_branches_devs_can_push_v12_3.png)
如果在创建受保护的分支时未选择任何这些选项,则默认情况下会将它们设置为"维护者".
## Restricting push and merge access to certain users[](#restricting-push-and-merge-access-to-certain-users-starter "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081) in [GitLab Starter](https://about.gitlab.com/pricing/) 8.11.
使用 GitLab 企业版,您可以通过选择角色(维护者,开发者)以及某些用户来限制对受保护分支的访问. 从下拉菜单中选择您要合并或推送访问的角色和/或用户.
[![Select roles and users](img/8fc9989164e038f62ee1015c2f477d84.png)](img/protected_branches_select_roles_and_users.png)
单击" **保护"** ,该分支将出现在"受保护的分支"列表中.
[![Roles and users list](img/0387751ed4b8717777ebac2706c2d637.png)](img/protected_branches_select_roles_and_users_list.png)
## Wildcard protected branches[](#wildcard-protected-branches "Permalink")
在 GitLab 8.10 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/4665) .
您可以指定一个通配符保护的分支,该分支将保护所有与通配符匹配的分支. 例如:
您可以指定一个通配符保护的分支,该分支将保护所有与通配符匹配的分支。 例如:
| 通配符保护的分支 | 匹配分支 |
| --- | --- |
......@@ -71,86 +40,30 @@ GitLab 中的[权限](../permissions.html)基本上是围绕对存储库和分
| `production/*` | `production/app-server`, `production/load-balancer` |
| `*gitlab*` | `gitlab`, `gitlab/staging`, `master/gitlab/production` |
受保护的分支设置(如"开发人员可以推送")适用于所有匹配的分支.
两个不同的通配符可能会匹配同一分支. 例如, `*-stable` `production-stable``production-*`都将与`production-stable`分支匹配. 在这种情况下,如果*这些*受保护的分支有这样一个设定"允许推送",然后`production-stable`也将继承这一设置.
受保护的分支设置(如" developer 可以推送")适用于所有匹配的分支。
如果单击受保护分支的名称,将显示所有匹配分支的列表:
两个不同的通配符可能会匹配同一分支。例如, `*-stable` `production-stable``production-*`都将与`production-stable`分支匹配,在这种情况下,如果*这些*受保护的分支有这样一个设定"允许推送",然后`production-stable`也将继承这一设置。
[![Protected branch matches](img/09870a42c6e3e94e7553f338a65c0b6d.png)](img/protected_branches_matches.png)
如果单击受保护分支的名称,将显示所有匹配分支的列表。
## Creating a protected branch[](#creating-a-protected-branch "Permalink")
## 新建保护分支[](#creating-a-protected-branch "Permalink")
当受保护的分支或通配符受保护的分支设置为" [**不允许任何人** **推送"时**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,只要允许 developer(和具有较高[权限级别的](/docs/user/permissions.md)用户)[**合并**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,就可以创建新的受保护分支。
在 GitLab 11.9 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53361) .
可以通过用户界面创建新分支:
当受保护的分支或通配符受保护的分支设置为" [**不允许任何人** **推送"时**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,只要允许开发人员(和具有较高[权限级别的](../permissions.html)用户) [**合并**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,就可以创建新的受保护分支. 这只能通过 UI 或 API 来完成(为避免意外地从命令行或 Git 客户端应用程序创建受保护的分支).
1. 打开**代码>分支**
2. 单击**新建分支**
3. 填写分支名称,然后选择一个现有的分支,新分支将基于该分支。仅接受现有的受保护分支和已经在受保护分支中的提交。
通过用户界面创建新分支:
## 删除保护分支[](#deleting-a-protected-branch "Permalink")
1. Visit **资料库>分支机构**.
2. Click on **新分支**.
3. 填写分支名称,然后选择一个现有的分支,标记或确认新分支将基于该分支. 仅接受现有的受保护分支和已经在受保护分支中的提交.
有时可能需要删除或清理受保护的分支,具有[ maintainer ](/docs/user/permissions.md)并具有[ maintainer ](/docs/user/permissions.md)用户可以通过 Web 界面手动删除受保护的分支:
## Deleting a protected branch[](#deleting-a-protected-branch "Permalink")
在 GitLab 9.3 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/21393) .
有时可能需要删除或清理受保护的分支.
具有[维护者权限](../permissions.html)并具有[维护者权限的](../permissions.html)用户可以通过 GitLab 的 Web 界面手动删除受保护的分支:
1. Visit **资料库>分支机构**
1. 打开**代码>分支**
2. 单击您要删除的分支旁边的删除图标
3. 为了防止意外删除,需要额外的确认
[![Delete protected branches](img/4e86bb665dcf8b8997d807441dbd60cd.png)](img/protected_branches_delete.png)
只能通过 Web 界面而不是 Git 删除受保护的分支. 这意味着您不能从命令行或 Git 客户端应用程序中意外删除受保护的分支.
## Protected Branches approval by Code Owners[](#protected-branches-approval-by-code-owners-premium "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13251) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
对于合并请求更改的文件,可能需要[代码所有者的](code_owners.html)至少一项批准. 可以在保护新分支时设置"代码所有者"批准,也可以将其设置为已经受保护的分支,如下所述.
要保护新分支并获得代码所有者的批准:
1. 导航到项目的**"设置">"存储库",**然后展开" **受保护的分支"** .
2. 向下滚动到**保护一个分支** ,选择**分支**或通配符你想保护,选择谁的**允许合并** **,****允许推** ,以及切换**需要从代码的业主**滑块**批准** .
3. Click **Protect**.
[![Code Owners approval - new protected branch](img/9a996b513114d1fe39fa67c75e54df46.png)](img/code_owners_approval_new_protected_branch_v12_4.png)
要使代码所有者批准已受保护的分支机构,请执行以下操作:
1. 导航到项目的**"设置">"存储库",**然后展开" **受保护的分支"** .
2. 向下滚动到" **受保护"分支,**然后切换所选分支的**"代码所有者"批准**滑块.
[![Code Owners approval - branch already protected](img/7a4195dce33a791e39b721499e4137ad.png)](img/code_owners_approval_protected_branch_v12_4.png)
启用后,所有针对这些分支的合并请求都将需要代码所有者根据匹配的规则进行批准,然后才能合并. 此外,如果匹配规则,则拒绝直接推送到受保护的分支.
## Running pipelines on protected branches[](#running-pipelines-on-protected-branches "Permalink")
合并或推送到受保护分支的权限用于定义用户是否可以运行 CI / CD 管道并在与那些分支相关的作业上执行操作.
有关管道安全模型的详细信息,请参阅[受保护分支上](../../ci/pipelines/index.html#pipeline-security-on-protected-branches)的安全性.
## Changelog[](#changelog "Permalink")
**11.9**
* [允许](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53361)开发人员(和具有更高权限级别的用户)通过 API 和用户界面[创建受保护的分支](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53361) .
**9.2**
* 允许通过 Web 界面删除受保护的分支( [问题#21393](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/21393) ).
**8.11**
* 允许创建无法推送到的受保护分支( [合并请求!5081](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/5081) ).
**8.10**
[![Delete protected branches](/docs/img/protected_branches_delete.png)](/docs/img/protected_branches_delete.png)
* 允许没有推送访问权限的开发人员合并到受保护的分支中( [合并请求!4892](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/4892) ).
* 允许使用通配符指定受保护的分支( [合并请求!4665](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/4665) ).
\ No newline at end of file
只能通过 Web 界面而不是 Git 删除受保护的分支,这意味着您不能从命令行或 Git 客户端应用程序中意外删除受保护的分支。
\ No newline at end of file
# 保护Tag[](#保护Tag "Permalink")
# 保护Tag[](#protected-tag "Permalink")
在 GitLab 9.1 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/10356) .
受保护的标签可控制谁有权创建标签,并防止创建后意外更新或删除。每个规则都允许您匹配单个标签名称,或使用通配符一次控制多个标签。
受保护的标签可控制谁有权创建标签,并防止创建后意外更新或删除. 每个规则都允许您匹配单个标签名称,或使用通配符一次控制多个标签.
此功能从[受保护的分支](/docs/user/project/protected-branch.md)演变而来。
此功能从[受保护的分支](protected_branches.html)演变而来
## 概览[](#overview "Permalink")
## Overview[](#overview "Permalink")
受保护的标签将阻止任何人更新或删除标签,并且将根据您选择的权限阻止创建匹配的标签。默认情况下,任何未经维护者许可的人都将无法创建标签。
受保护的标签将阻止任何人更新或删除标签,并且将根据您选择的权限阻止创建匹配的标签. 默认情况下,任何未经维护者许可的人都将无法创建标签.
## 配置保护 Tag[](#configuring-protected-tags "Permalink")
## Configuring protected tags[](#configuring-protected-tags "Permalink")
为了保护标签,您需要至少具有维护者权限级别.
1. 导航到项目的**"设置">"存储库"**
[![Repository Settings](img/bec396562e8fe025cb7009de091ff2aa.png)](img/project_repository_settings.png)
为了保护标签,您需要至少具有 maintainer 权限级别
1. 导航到项目的**"项目设置">"仓库"**
2.**标签**下拉菜单中,选择要保护或输入的标签,然后点击**创建通配符** . 在下面的屏幕截图中,我们选择保护所有与`v*`匹配的标签:
[![Protected tags page](img/8ab62c2dee9f26abae9b7f794b4f5fae.png)](img/protected_tags_page_v12_3.png)
[![Protected tags page](/docs/img/protected_tags_page_v12_3.png)](/docs/img/protected_tags_page_v12_3.png)
3. 从" **允许创建"**下拉列表中,选择谁有权创建匹配的标签,然后单击" **保护"**
[![Allowed to create tags dropdown](img/52fecb33c2f168630e9a8f7c95aaf517.png)](img/protected_tags_permissions_dropdown_v12_3.png)
4. 完成后,受保护的标签将显示在" **受保护的标签"**列表中:
[![Protected tags list](img/572645049ee5ab43733f62fc45312843.png)](img/protected_tags_list_v12_3.png)
## Wildcard protected tags[](#wildcard-protected-tags "Permalink")
## 通配保护 Tag[](#wildcard-protected-tags "Permalink")
您可以指定一个通配符保护的标记,它将保护所有与通配符匹配的标记. 例如:
您可以指定一个通配符保护的标记,它将保护所有与通配符匹配的标记例如:
| 通配符保护标签 | 匹配标签 |
| --- | --- |
......@@ -41,8 +31,6 @@
| `*gitlab*` | `gitlab`, `gitlab/v1` |
| `*` | `v1.0.1rc2`, `accidental-tag` |
两个不同的通配符可以潜在地匹配同一标签. 例如, `*-stable` `production-stable``production-*`都将与`production-stable`标签匹配. 在这种情况下,如果*这些*受保护的标签都像**允许创建**一个设定,然后`production-stable`也将沿用此设置.
如果单击受保护标签的名称,将显示所有匹配标签的列表:
两个不同的通配符可以潜在地匹配同一标签,例如, `*-stable` `production-stable``production-*`都将与`production-stable`标签匹配。 在这种情况下,如果*这些*受保护的标签都像**允许创建**一个设定,然后`production-stable`也将沿用此设置。
[![Protected tag matches](img/cc52a99e48b72695add0c3e8efab158f.png)](img/protected_tag_matches.png)
\ No newline at end of file
如果单击受保护标签的名称,将显示所有匹配标签的列表。
\ No newline at end of file
# 推送选项[](#推送选项 "Permalink")
在 GitLab 11.7 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15643) .
GitLab 支持使用客户端[Git 推送选项](https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt)在推送更改的同时执行各种操作. 此外, [推送规则](../../push_rules/push_rules.html)提供服务器端控制和实施选项.
当前,有推送选项可用于:
* [Skipping CI jobs](#push-options-for-gitlab-cicd)
* [Merge requests](#push-options-for-merge-requests)
**注意:** Git 推送选项仅在 Git 2.10 或更高版本中可用.
对于 2.10 至 2.17 版本的 Git,请使用`--push-option`
```
git push --push-option=<push_option>
```
对于 2.18 及更高版本,可以使用以上格式,或更短的`-o`
```
git push -o <push_option>
```
## Push options for GitLab CI/CD[](#push-options-for-gitlab-cicd "Permalink")
您可以使用推入选项跳过 CI / CD 管道或传递环境变量.
| 推送选项 | Description | 版本介绍 |
| --- | --- | --- |
| `ci.skip` | 不要为最新推送创建 CI 管道. | [11.7](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/15643) |
| `ci.variable="<name>=<value>"` | 如果由于推送而创建了[环境变量](../../ci/variables/README.html) ,请提供要在 CI 管道中使用的[环境变量](../../ci/variables/README.html) . | [12.6](https://gitlab.com/gitlab-org/gitlab/-/issues/27983) |
使用`ci.skip`的示例:
```
git push -o ci.skip
```
An example of passing some environment variables for a pipeline:
```
git push -o ci.variable="MAX_RETRIES=10" -o ci.variable="MAX_TIME=600"
```
## Push options for merge requests[](#push-options-for-merge-requests "Permalink")
您可以在推送更改的同时使用 Git 推送选项对合并请求执行某些操作:
| 推送选项 | Description | 版本介绍 |
| --- | --- | --- |
| `merge_request.create` | 为推送的分支创建一个新的合并请求. | [11.10](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26752) |
| `merge_request.target=<branch_name>` | 将合并请求的目标设置为特定分支. | [11.10](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26752) |
| `merge_request.merge_when_pipeline_succeeds` | 设置合并请求以[在其管道成功时](merge_requests/merge_when_pipeline_succeeds.html)进行[合并](merge_requests/merge_when_pipeline_succeeds.html) . | [11.10](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26752) |
| `merge_request.remove_source_branch` | 设置合并请求以在合并时删除源分支. | [12.2](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/64320) |
| `merge_request.title="<title>"` | 设置合并请求的标题. 例如: `git push -o merge_request.title="The title I want"` . | [12.2](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/64320) |
| `merge_request.description="<description>"` | 设置合并请求的描述. 例如: `git push -o merge_request.description="The description I want"` . | [12.2](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/64320) |
| `merge_request.label="<label>"` | 将标签添加到合并请求. 如果标签不存在,它将被创建. 例如,对于两个标签: `git push -o merge_request.label="label1" -o merge_request.label="label2"` . | [12.3](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31831) |
| `merge_request.unlabel="<label>"` | 从合并请求中删除标签. 例如,对于两个标签: `git push -o merge_request.unlabel="label1" -o merge_request.unlabel="label2"` . | [12.3](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/31831) |
如果您使用要求文本带有空格的 push 选项,则需要用引号( `"` )括起来.如果没有空格,则可以省略引号.例如:
```
git push -o merge_request.label="Label with spaces"
git push -o merge_request.label=Label-with-no-spaces
```
您可以通过使用多个`-o` (或`--push-option` )标志来组合推送选项以一次完成多个任务. 例如,如果您要创建一个新的合并请求,并定位一个名为`my-target-branch`
```
git push -o merge_request.create -o merge_request.target=my-target-branch
```
此外,如果希望合并请求在管道成功后立即合并,则可以执行以下操作:
```
git push -o merge_request.create -o merge_request.target=my-target-branch -o merge_request.merge_when_pipeline_succeeds
```
## Useful Git aliases[](#useful-git-aliases "Permalink")
如上所示,Git 推送选项可能导致 Git 命令增长很长. 如果您经常使用相同的 push 选项,则创建[Git 别名会](https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases)很有用. Git 别名是 Git 的命令行快捷方式,可以大大简化长 Git 命令的使用.
### Merge when pipeline succeeds alias[](#merge-when-pipeline-succeeds-alias "Permalink")
[在管道成功执行 Git push 选项时](#push-options-for-merge-requests)[合并](#push-options-for-merge-requests)设置 Git 别名:
```
git config --global alias.mwps "push -o merge_request.create -o merge_request.target=master -o merge_request.merge_when_pipeline_succeeds"
```
然后,为了在管道成功时快速推送将针对 master 并合并的本地分支:
```
git mwps origin <local-branch-name>
```
\ No newline at end of file
# 快速操作[](#快速操作 "Permalink")
# 快速操作[](#quick-actions "Permalink")
版本历史
快速操作是针对 Issue 、Epic、合并请求和提交的常见操作的文本快捷方式,通常可通过在 CODEChina 用户界面中单击按钮或下拉菜单来完成。您可以在 Issue、史诗、合并请求和提交的说明中或讨论中输入这些命令,每个命令应放在单独的行上,以便正确检测和执行。
*[GitLab 12.1 中](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/26672)引入:一旦执行了一项操作,成功执行快速操作后将显示一条警报.
*[GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/issues/16877)和更高版本中,您可以在更新问题,史诗和合并请求的描述时使用快速操作.
## Issue、合并请求及 Epic 的快速操作[](#quick-actions-for-issues-merge-requests-and-epics "Permalink")
快速操作是针对问题,史诗,合并请求和提交的常见操作的文本快捷方式,通常可通过在 GitLab 用户界面中单击按钮或下拉菜单来完成. 您可以在说明中或问题,史诗,合并请求和提交的注释中输入这些命令. 每个命令应放在单独的行上,以便正确检测和执行.
## Quick Actions for issues, merge requests and epics[](#quick-actions-for-issues-merge-requests-and-epics "Permalink")
以下快速操作适用于其中的描述,讨论和主题:
以下快速操作适用于其中的描述,讨论和评论部分:
* Issues
* 合并
* 合并
* Epics
| Command | Issue | 合并要求 | Epic | Action |
| 命令 | Issue | 合并请求 | Epic | Action |
| --- | --- | --- | --- | --- |
| `/approve` |   | ✓ |   | 批准合并请求. |
| `/assign @user` | ✓ | ✓ |   | 分配一个用户. |
| `/assign @user1 @user2` | ✓ | ✓ |   | 分配多个用户. |
| `/assign me` | ✓ | ✓ |   | 分配自己. |
| `/award :emoji:` | ✓ | ✓ | ✓ | 切换表情符号奖. |
| `/child_epic <epic>` |   |   | ✓ | 将子史诗添加到`<epic>` . `<epic>`值的格式应为`&epic``group&epic``group&epic`的 URL( [在 GitLab 12.0 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/7330) ). |
| `/clear_weight` | ✓ |   |   | 净重. |
| `/close` | ✓ | ✓ | ✓ | Close. |
| `/confidential` | ✓ |   |   | 保密. |
| `/copy_metadata <!merge_request>` | ✓ | ✓ |   | 从项目中的另一个合并请求中复制标签和里程碑. |
| `/copy_metadata <#issue>` | ✓ | ✓ |   | Copy labels and milestone from another issue in the project. |
| `/create_merge_request <branch name>` | ✓ |   |   | 从当前问题开始创建一个新的合并请求. |
| `/done` | ✓ | ✓ | ✓ | 将待办事项标记为已完成. |
| `/due <date>` | ✓ |   |   | 设置截止日期. 有效的`<date>`示例包括`in 2 days``this Friday``December 31st` . |
| `/duplicate <#issue>` | ✓ |   |   | 关闭此问题,并将其标记为另一个问题的副本. 另外,将两者都标记为相关. |
| `/epic <epic>` | ✓ |   |   | 添加到史诗`<epic>` . `<epic>`值的格式应为`&epic``group&epic``group&epic`的 URL. |
| `/estimate <<W>w <DD>d <hh>h <mm>m>` | ✓ | ✓ |   | 设置时间估计. 例如, `/estimate 1w 3d 2h 14m` . |
| `/iteration *iteration:iteration` | ✓ |   |   | 设置迭代( [在 GitLab 13.1 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/196795) ) |
| `/label ~label1 ~label2` | ✓ | ✓ | ✓ | 添加一个或多个标签. 标签名称也可以不使用波浪号( `~` )开头,但是不支持混合语法. |
| `/lock` | ✓ | ✓ |   | 锁定螺纹. |
| `/merge` |   | ✓ |   | 合并更改. 根据项目设置,这可能是[管道成功](merge_requests/merge_when_pipeline_succeeds.html) ,添加到" [合并火车](../../ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/index.html) "等时. |
| `/milestone %milestone` | ✓ | ✓ |   | 设定里程碑. |
| `/move <path/to/project>` | ✓ |   |   | 将此问题移到另一个项目. |
| `/parent_epic <epic>` |   |   | ✓ | 将父级史诗设置为`<epic>` . `<epic>`值的格式应为`&epic``group&epic``group&epic`的 URL( [在 GitLab 12.1 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/10556) ). |
| `/promote` | ✓ |   |   | 将问题升级为史诗. |
| `/publish` | ✓ |   |   | 将问题发布到关联的[状态页](status_page/index.html)[在 GitLab 13.0 中引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/30906) ) |
| `/reassign @user1 @user2` | ✓ | ✓ |   | 更改受让人. |
| `/relabel ~label1 ~label2` | ✓ | ✓ | ✓ | 用指定的标签替换现有的标签. |
| `/relate #issue1 #issue2` | ✓ |   |   | 将问题标记为相关. |
| `/remove_child_epic <epic>` |   |   | ✓ | 从`<epic>`删除儿童史诗. `<epic>`值的格式应为`&epic``group&epic``group&epic`的 URL( [在 GitLab 12.0 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/7330) ). |
| `/remove_due_date` | ✓ |   |   | 删除到期日. |
| `/remove_epic` | ✓ |   |   | 从史诗中删除. |
| `/remove_estimate` | ✓ | ✓ |   | 删除时间估计. |
| `/assign @user` | ✓ | ✓ |   | 分配一个用户|
| `/assign me` | ✓ | ✓ |   | 分配自己|
| `/award :emoji:` | ✓ | ✓ | ✓ | 切换表情符号奖|
| `/close` | ✓ | ✓ | ✓ | Close|
| `/confidential` | ✓ |   |   | 保密|
| `/copy_metadata <!merge_request>` | ✓ | ✓ |   | 从项目中的另一个合并请求中复制标签和里程碑|
| `/copy_metadata <#issue>` | ✓ | ✓ |   | Copy labels and milestone from another issue in the project|
| `/create_merge_request <branch name>` | ✓ |   |   | 从当前问题开始创建一个新的合并请求|
| `/done` | ✓ | ✓ | ✓ | 将待办事项标记为已完成|
| `/due <date>` | ✓ |   |   | 设置截止日期有效的`<date>`示例包括`in 2 days``this Friday``December 31st` |
| `/estimate <<W>w <DD>d <hh>h <mm>m>` | ✓ | ✓ |   | 设置时间估计例如, `/estimate 1w 3d 2h 14m` |
| `/label ~label1 ~label2` | ✓ | ✓ | ✓ | 添加一个或多个标签标签名称也可以不使用波浪号( `~` )开头,但是不支持混合语法|
| `/lock` | ✓ | ✓ |   | 锁定螺纹|
| `/merge` |   | ✓ |   | 合并更改根据项目设置,这可能是管道成功时|
| `/milestone %milestone` | ✓ | ✓ |   | 设定里程碑|
| `/move <path/to/project>` | ✓ |   |   | 将此问题移到另一个项目|
| `/relabel ~label1 ~label2` | ✓ | ✓ | ✓ | 用指定的标签替换现有的标签|
| `/remove_due_date` | ✓ |   |   | 删除到期日|
| `/remove_estimate` | ✓ | ✓ |   | 删除时间估计|
| `/remove_iteration` | ✓ |   |   | 删除迭代( [在 GitLab 13.1 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/196795) ) |
| `/remove_milestone` | ✓ | ✓ |   | 删除里程碑. |
| `/remove_parent_epic` |   |   | ✓ | 从史诗中删除父史诗( [在 GitLab 12.1 中引入](https://gitlab.com/gitlab-org/gitlab/-/issues/10556) ). |
| `/remove_time_spent` | ✓ | ✓ |   | 消除花费的时间. |
| `/remove_zoom` | ✓ |   |   | 从此问题中删除 Zoom 会议( [在 GitLab 12.4 中引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609) ). |
| `/reopen` | ✓ | ✓ | ✓ | Reopen. |
| `/shrug <comment>` | ✓ | ✓ | ✓ | 将注释附加到`¯\_(ツ)_/¯` . |
| `/spend <time(-<h>h <mm>m)> <date(<YYYY-MM-DD>)>` | ✓ | ✓ |   | 减去花费的时间. (可选)指定花费时间的日期. 例如`/spend time(-1h 30m)``/spend time(-1h 30m) date(2018-08-26)` . |
| `/spend <time(<h>h <mm>m)> <date(<YYYY-MM-DD>)>` | ✓ | ✓ |   | 增加花费的时间. (可选)指定花费时间的日期. 例如`/spend time(1h 30m)``/spend time(1h 30m) date(2018-08-26)` . |
| `/submit_review` |   | ✓ |   | Submit a pending review ([introduced in GitLab 12.7](https://gitlab.com/gitlab-org/gitlab/-/issues/8041)). |
| `/subscribe` | ✓ | ✓ | ✓ | 订阅通知. |
| `/tableflip <comment>` | ✓ | ✓ | ✓ | 在`(╯°□°)╯︵ ┻━┻`添加注释. |
| `/target_branch <local branch name>` |   | ✓ |   | 设置目标分支. |
| `/title <new title>` | ✓ | ✓ | ✓ | 更改标题. |
| `/todo` | ✓ | ✓ | ✓ | 添加待办事项. |
| `/unassign @user1 @user2` | ✓ | ✓ |   | 删除特定的受让人. |
| `/unassign` | ✓ | ✓ |   | 删除所有受让人. |
| `/unlabel ~label1 ~label2` or `/remove_label ~label1 ~label2` | ✓ | ✓ | ✓ | 删除所有或特定标签. |
| `/unlock` | ✓ | ✓ |   | 解锁线程. |
| `/unsubscribe` | ✓ | ✓ | ✓ | 退订通知. |
| `/weight <value>` | ✓ |   |   | 设定重量. 为有效选项`<value>`包括`0``1``2` ,依此类推. |
| `/wip` |   | ✓ |   | 切换"进行中"状态. |
| `/zoom <Zoom URL>` | ✓ |   |   | 将 Zoom [Meeting](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609)添加到此问题( [在 GitLab 12.4 中引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609) ). |
| `/remove_milestone` | ✓ | ✓ |   | 删除里程碑|
| `/remove_time_spent` | ✓ | ✓ |   | 消除花费的时间|
| `/remove_zoom` | ✓ |   |   | 从此问题中删除 Zoom 会议( [在 GitLab 12.4 中引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16609) )|
| `/reopen` | ✓ | ✓ | ✓ | Reopen|
| `/shrug <comment>` | ✓ | ✓ | ✓ | 将注释附加到`¯\_(ツ)_/¯` |
| `/spend <time(-<h>h <mm>m)> <date(<YYYY-MM-DD>)>` | ✓ | ✓ |   | 减去花费的时间(可选)指定花费时间的日期例如`/spend time(-1h 30m)``/spend time(-1h 30m) date(2018-08-26)` |
| `/spend <time(<h>h <mm>m)> <date(<YYYY-MM-DD>)>` | ✓ | ✓ |   | 增加花费的时间(可选)指定花费时间的日期例如`/spend time(1h 30m)``/spend time(1h 30m) date(2018-08-26)` |
| `/subscribe` | ✓ | ✓ | ✓ | 订阅通知|
| `/tableflip <comment>` | ✓ | ✓ | ✓ | 在`(╯°□°)╯︵ ┻━┻`添加注释|
| `/target_branch <local branch name>` |   | ✓ |   | 设置目标分支|
| `/title <new title>` | ✓ | ✓ | ✓ | 更改标题|
| `/todo` | ✓ | ✓ | ✓ | 添加待办事项|
| `/unassign` | ✓ | ✓ |   | 删除所有受让人|
| `/unlabel ~label1 ~label2` or `/remove_label ~label1 ~label2` | ✓ | ✓ | ✓ | 删除所有或特定标签|
| `/unlock` | ✓ | ✓ |   | 解锁线程|
| `/unsubscribe` | ✓ | ✓ | ✓ | 退订通知|
| `/wip` |   | ✓ |   | 切换"进行中"状态|
## Autocomplete characters[](#autocomplete-characters "Permalink")
## 自动补全字符[](#autocomplete-characters "Permalink")
许多快速操作都需要一个参数,例如:用户名,里程碑和标签. 与从列表中选择项目相比, [自动完成字符](autocomplete_characters.html)可以使输入参数更加容易.
许多快速操作都需要一个参数,例如:用户名,里程碑和标签。与从列表中选择项目相比, [自动完成字符](/docs/user/project/autofill.md)可以使输入参数更加容易。
## Quick actions parameters[](#quick-actions-parameters "Permalink")
## 快速操作参数[](#quick-actions-parameters "Permalink")
设置快速操作参数的最简单方法是使用自动完成功能. 如果您手动输入参数,则该参数必须用双引号( `"` )括起来,除非它仅包含以下字符:
设置快速操作参数的最简单方法是使用自动完成功能如果您手动输入参数,则该参数必须用双引号( `"` )括起来,除非它仅包含以下字符:
1. ASCII 字母.
2. 数字(0-9).
3. 下划线( `_` ),连字符( `-` ),问号( `?` ),点( `.` )或`&``&` ).
1 ASCII 字母
2 数字(0-9)
3 下划线( `_` ),连字符( `-` ),问号( `?` ),点( `.` )或`&``&`
参数也区分大小写. 自动完成功能会自动处理此问题,并自动插入引号.
参数也区分大小写,自动完成功能会自动处理此问题,并自动插入引号。
## Quick actions for commit messages[](#quick-actions-for-commit-messages "Permalink")
## 提交消息的快速操作[](#quick-actions-for-commit-messages "Permalink")
以下快速操作适用于提交消息:
| Command | Action |
| 命令 | Action |
| --- | --- |
| `/tag v1.2.3 <message>` | 使用可选消息标记此提交 |
\ No newline at end of file
# Releases[](#releases "Permalink")
在 GitLab 11.7 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41766) .
要在源代码历史记录中引入检查点,可以在发布时分配[Git 标签](https://git-scm.com/book/en/v2/Git-Basics-Tagging) 。但是,在大多数情况下,您的用户不仅需要原始源代码,他们需要 CI / CD 系统输出的已编译对象或其他资产。
要在源代码历史记录中引入检查点,可以在发布时分配[Git 标签](https://git-scm.com/book/en/v2/Git-Basics-Tagging) . 但是,在大多数情况下,您的用户不仅需要原始源代码. 他们需要 CI / CD 系统输出的已编译对象或其他资产.
*Release*是与代码的发行版本相关联的源代码,构建输出,工件和其他元数据的快照。
GitLab *发行版*是与代码的发行版本相关联的源,构建输出,工件和其他元数据的快照.
您可以在任何分支上创建一个 Release,创建时:
您可以在任何分支上创建一个 GitLab 版本. 创建发行版时:
* 系统将自动归档源代码,并将其与 release 关联
* 系统会自动创建一个 JSON 文件,其中列出了发行版中的所有内容,因此您可以比较和审核发行版。该文件称为[发布证据](#release-evidence)
* 您可以添加发行说明以及与发行版关联的标签的消息
* manbetx 客户端打不开自动归档源代码,并将其与版本关联.
* GitLab 会自动创建一个 JSON 文件,其中列出了发行版中的所有内容,因此您可以比较和审核发行版. 该文件称为[发布证据](#release-evidence) .
* 您可以添加发行说明以及与发行版关联的标签的消息.
创建发行版后,您可以将[里程碑与其关联](#associate-milestones-with-a-release) ,并附加[发行附件](#release-assets) ,例如运行手册或软件包。
创建发行版后,您可以将[里程碑与其关联](#associate-milestones-with-a-release) ,并附加[发行资产](#release-assets) ,例如运行手册或软件包.
## View releases[](#view-releases "Permalink")
在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/36667) .
## 查看 Release[](#view-releases "Permalink")
要查看版本列表:
* 转到**项目概述>版本** ,或
* 在项目的概述页面上,如果存在至少一个版本,请单击版本数.
[![Number of Releases](img/4b690260474eb340f7b3f6d25b0568d2.png "Incremental counter of Releases")](img/releases_count_v13_2.png)
* 在公共项目上,此数字对所有用户可见.
* 在私有项目上,具有 Reporter [权限](../../permissions.html#project-members-permissions)或更高[权限的](../../permissions.html#project-members-permissions)用户可以看到此数字.
## Create a release[](#create-a-release "Permalink")
在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/32812) . 可以在 GitLab UI 中直接创建发布.
**注意:**只有具有开发者权限或更高权限的用户才能创建发行版. 阅读有关[释放权限的](../../../user/permissions.html#project-members-permissions)更多信息.
您可以在用户界面中或使用[Releases API](../../../api/releases/index.html#create-a-release)创建发布. 我们建议使用 API​​添加发行说明,作为 CI / CD 发行流程中的最后步骤之一.
要通过 GitLab UI 创建新版本:
1. 导航到**项目概述>发布** ,然后单击**新发布**按钮.
2.[**标签名称**](#tag-name)框中,输入一个名称.
3. In the **从创建** list, select the branch or enter a tag or commit SHA.
4. 在" **消息"**框中,输入与标签关联的消息.
5. (可选)在" [**发行说明"**](#release-notes-description)字段中,输入发行说明. 您可以使用 Markdown 并将文件拖放到此字段.
* 如果将此字段留空,则只会创建一个标签.
* 如果您填充它,将同时创建标签和发行版.
6. Click **创建标签**.
如果创建了发行​​版,则可以在**项目概述>发行版中**对其进行查看. 如果创建了标签,则可以在**存储库>标签中**查看它.
现在,您可以编辑发布以[添加里程碑](#associate-milestones-with-a-release)[发布资产](#release-assets) .
### Schedule a future release[](#schedule-a-future-release "Permalink")
在 GitLab 12.1 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38105) .
您可以使用[Releases API](../../../api/releases/index.html#upcoming-releases)提前创建发行[](../../../api/releases/index.html#upcoming-releases) . 当您设置将来的`released_at`日期时,将在发布标签旁边显示**即将发布**的发布标志. 经过`released_at`日期和时间后,会自动删除徽章.
[![An upcoming release](img/7727ed12caef6b761b73e4bd379c7839.png)](img/upcoming_release_v12_7.png)
## Edit a release[](#edit-a-release "Permalink")
在 GitLab 12.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/26016) . 在 GitLab 12.10 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/9427)了资产链接编辑.
**注意:**只有具有开发者权限或更高权限的用户才能编辑发行版. 阅读有关[释放权限的](../../../user/permissions.html#project-members-permissions)更多信息.
* 转到**项目> 项目简介**,在下方有发行版本信息
* 在项目的概述页面上,如果存在至少一个版本,请单击版本数
* 在公共项目上,此数字对所有用户可见
* 在私有项目上,具有 Reporter [权限](/docs/user/permissions.md)或更高权限的用户可以看到此数字
要编辑发布的详细信息:
## 创建 Release[](#create-a-release "Permalink")
1. 导航到**项目概述>发布** .
2. 在您要修改的发行版的右上角,单击" **编辑此发行版"** (铅笔图标).
3. 在" **编辑版本"**页面上,更改版本的详细信息.
4. Click **保存更改**.
可以在 CODEChina 界面中直接创建发布。
您可以编辑发行标题,注释,关联的里程碑和资产链接. 要更改其他发行信息,例如标签或发行日期,请使用[Releases API](../../../api/releases/index.html#update-a-release) .
**注意:**只有具有 developer 权限或更高权限的用户才能创建发行版。
## Add release notes to Git tags[](#add-release-notes-to-git-tags "Permalink")
可以通过以下步骤创建新版本:
If you have an existing Git tag, you can add release notes to it.
1. 转到**项目> 项目简介** ,然后单击**创建发行版**;或在发行列表中右上角单击**新建发布**按钮
2.[**标签名称**](#tag-name)框中,输入一个名称
3. 单击**从创建列表**,并选择需要创建发行版的分支
4. 在" **消息"**框中,输入与标签关联的消息
5. (可选)在" [**发行说明"**](#release-notes-description)字段中,输入发行说明。您可以使用 Markdown 并将文件拖放到此字段
* 如果将此字段留空,则只会创建一个标签
* 如果您填充它,将同时创建标签和发行版
6. 单击 **创建标签**
您可以在用户界面中或使用[Releases API](../../../api/releases/index.html)来执行此操作. 我们建议使用 API​​添加发行说明,作为 CI / CD 发行流程中的最后步骤之一.
如果创建了发行​​版,则可以在**项目> 项目简介** 对其进行查看。如果创建了标签,则可以在**仓库>标签**查看它。
在界面中,要向新的 Git 标签添加发行说明:
现在,您可以编辑发布以[添加里程碑](#associate-milestones-with-a-release)[发布附件](#release-assets)
1. 导航到您项目的**Repository> Tags** .
2. Click **新的一天**.
3.**发行说明**字段中,输入发行说明. 您可以使用 Markdown 并将文件拖放到此字段.
4. Click **创建标签**.
## 编辑 Release[](#edit-a-release "Permalink")
在界面中,要将发行说明添加到现有的 Git 标签:
**注意:**只有具有 developer 权限或更高权限的用户才能编辑发行版。
1. 导航到您项目的**Repository> Tags** .
2. 单击**编辑发行说明** (铅笔图标).
3.**发行说明**字段中,输入发行说明. 您可以在此字段中使用 Markdown,并将文件拖放到该字段中.
4. Click **保存更改**.
可以通过以下步骤编辑发行版:
## Associate milestones with a release[](#associate-milestones-with-a-release "Permalink")
1. 转到**项目> 项目简介**,点击 发行版本旁边的数字并进入到 发行版本列表
2. 在您要修改的发行版的右上角,单击" **编辑此发布"** 按钮
3. 在" **编辑版本"**页面上,更改版本的详细信息
4. 单击 **保存更改**
版本历史
您可以编辑发行标题,注释,关联的里程碑和资产链接。
* 在 GitLab 12.5 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/29020) .
* [已更新](https://gitlab.com/gitlab-org/gitlab/-/issues/39467) ,可在 GitLab 13.0 中的 UI 中编辑里程碑.
## 在 Tag 上添加发行信息[](#add-release-notes-to-git-tags "Permalink")
您可以将一个版本与一个或多个[项目里程碑](../milestones/index.html#project-milestones-and-group-milestones)相关联.
如果你有一个已经存在的 Tag,你可以在这个 Tag 上添加发行信息,您可以在用户界面中来执行此操作。
您可以在用户界面中执行此操作,也可以在对[Releases API 的](../../../api/releases/index.html#create-a-release)请求中包含一个`milestones`数组.
在界面中,您可以通过以下步骤向新的 Git 标签添加发行说明:
在用户界面中,要将里程碑与版本关联:
1. 导航到您项目的**代码> Tags**
2. 单击 **新建标记**
3.**发行说明**字段中,输入发行说明。您可以使用 Markdown 并将文件拖放到此字段
4. 单击 **创建标签**
1. 导航到**项目概述>发布** .
2. 在您要修改的发行版的右上角,单击" **编辑此发行版"** (铅笔图标).
3. 从" **里程碑"**列表中,选择要关联的每个里程碑. 您可以选择多个里程碑.
4. Click **保存更改**.
在界面中,您可以通过以下步骤将发行说明添加到现有的 Git 标签:
在" **项目概述">"发布"**页面上, **里程碑**列在顶部,以及有关里程碑问题的统计信息.
1. 导航到您项目的**代码> Tags**
2. 单击**编辑发行说明**
3.**发行说明**字段中,输入发行说明。您可以在此字段中使用 Markdown,并将文件拖放到该字段中
4. 单击 **保存更改**
[![A Release with one associated milestone](img/21967843cf3a12bcfa5e39a39b1b3f69.png)](img/release_with_milestone_v12_9.png)
## 关联发行与里程碑[](#associate-milestones-with-a-release "Permalink")
在" **问题">"里程碑"**页面上,以及当您单击此页面上的里程碑时,也可以看到发行版本.
您可以将一个版本与一个或多个项目里程碑相关联。
这是一个里程碑示例,分别没有发布,一个发布和两个发布.
您可以在用户界面中执行此操作,具体的步骤如下:
[![Milestones with and without Release associations](img/e6ef8c883764c13967c9c9fcc5617980.png)](img/milestone_list_with_releases_v12_5.png)
1. 转到**项目> 项目简介**,点击 发行版本旁边的数字并进入到 发行版本列表
2. 在您要修改的发行版的右上角,单击" **编辑此发行版"**
3. 从" **里程碑"**列表中,选择要关联的每个里程碑,您可以选择多个里程碑
4. 单击 **保存更改**
## Get notified when a release is created[](#get-notified-when-a-release-is-created "Permalink")
## 当发布时通知我[](#get-notified-when-a-release-is-created "Permalink")
在 GitLab 12.4 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/26001) .
当您的项目创建新版本时,将通过电子邮件通知您。
为您的项目创建新版本时,将通过电子邮件通知您.
可以通过以下步骤订阅发布通知:
订阅发布通知:
1. 进入项目页面
2. 单击**通知设置**
3. 在列表中,点击**自定义**
4. 勾选 **新发布** 复选框
5. 关闭对话框并保存
1. 导航到" **项目概述"** .
2. 单击**通知设置** (响铃图标).
3. 在列表中,点击**自定义** .
4. Select the **新品发布** check box.
5. 关闭对话框进行保存.
## 认识发行[](#release-fields "Permalink")
## Prevent unintentional releases by setting a deploy freeze[](#prevent-unintentional-releases-by-setting-a-deploy-freeze "Permalink")
创建或编辑发行版时,以下字段可用:
在 GitLab 13.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29382) .
### Tag 名称[](#tag-name "Permalink")
通过设置[*部署冻结*期,](../../../ci/environments/deployment_safety.html)可以在指定的时间内防止意外的生产发布. 冻结部署有助于减少自动化部署时的不确定性和风险.
使用" [冻结时间" API](../../../api/freeze_periods.html)设置被定义为[crontab](https://crontab.guru/)条目的`freeze_start``freeze_end` .
如果正在执行的作业处于冻结期,则 GitLab CI / CD 会创建一个名为`$CI_DEPLOY_FREEZE`的环境变量.
为了防止执行部署作业,请在`gitlab-ci.yaml`创建一个`rules`条目,例如:
```
deploy_to_production:
stage: deploy
script: deploy_to_prod.sh
rules:
- if: $CI_DEPLOY_FREEZE == null
```
如果项目包含多个冻结期,则所有时期都适用. 如果它们重叠,则冻结将覆盖整个重叠期间.
有关更多信息,请参阅[部署安全](../../../ci/environments/deployment_safety.html) .
## Release fields[](#release-fields "Permalink")
创建或编辑发行版时,以下字段可用.
### Tag name[](#tag-name "Permalink")
发行标签名称应包括发行版本. GitLab 在我们的发行版中使用[语义版本控制](https://semver.org/) ,我们建议您也这样做. 使用`(Major).(Minor).(Patch)` ,如[GitLab 版本控制政策](../../../policy/maintenance.html#versioning)中所述.
发行标签名称应包括发行版本,我们建议您在发行版中使用[语义版本控制](https://semver.org/)。 使用`(Major).(Minor).(Patch)`
例如,对于 GitLab 版本`10.5.7`
......@@ -177,139 +112,45 @@ deploy_to_production:
版本号的任何部分都可以是多个数字,例如`13.10.11` .
### Release notes description[](#release-notes-description "Permalink")
### 发行描述[](#release-notes-description "Permalink")
每个版本都有说明. 您可以添加任何您喜欢的文本,但是我们建议您添加一个变更日志来描述发行版本的内容. 这可以帮助用户快速扫描您发布的每个版本之间的差异.
每个版本都有说明,您可以添加任何您喜欢的文本,但是我们建议您添加一个变更日志来描述发行版本的内容。这可以帮助用户快速扫描您发布的每个版本之间的差异。
**注意:** [Git 的标记消息](https://git-scm.com/book/en/v2/Git-Basics-Tagging)和发行说明描述无关. 说明支持[Markdown](../../markdown.html) .
**注意:** [Git 的标记消息](https://git-scm.com/book/en/v2/Git-Basics-Tagging)和发行说明描述无关;说明支持[Markdown](/docs/user/markdown.md)
### Release assets[](#release-assets "Permalink")
### 发布资产[](#release-assets "Permalink")
当前,您可以将以下类型的资产添加到每个版本:
* [Source code](#source-code)
* [Links](#links)
manbetx 客户端打不开将在未来支持更多的资产类型,包括诸如预装包,合规性/安全证据或容器图像之类的对象.
#### Permanent links to release assets[](#permanent-links-to-release-assets "Permalink")
我们将在未来支持更多的资产类型,包括诸如预装包,合规性/安全证据或容器图像之类的对象等。
在 GitLab 12.9 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/27300) .
### 源代码[](#source-code "Permalink")
与发布相关联的资产可通过永久 URL 访问. GitLab 将始终将此 URL 重定向到实际资产位置,因此,即使资产移动到其他位置,您也可以继续使用相同的 URL. 这是在[链接创建](../../../api/releases/links.html#create-a-link)[更新](../../../api/releases/links.html#update-a-link)期间定义的.
我们会根据给定的 Git 标签自动生成`zip``tar.gz``tar.bz2``tar`归档的源代码, 这些是只读资产。
每个资产都有一个名称, *实际*资产位置的 URL,以及一个可选的`filepath`参数,如果您指定它,它将创建指向发布的资产的 URL. URL 的格式为:
```
https://host/namespace/project/releases/:release/downloads/:filepath
```
### 链接[](#links "Permalink")
如果您对资产`v11.9.0-rc2`的发布`gitlab-org`命名空间和`gitlab-runner`项目上`gitlab.com` ,例如:
链接是任何可以指向您喜欢的任何内容的URL:文档、构建的二进制文件或其他相关材料。这些可以是来自 CODEChina 的内部或外部链接。
```
{ "name": "linux amd64", "filepath": "/binaries/gitlab-runner-linux-amd64", "url": "https://gitlab-runner-downloads.s3.amazonaws.com/v11.9.0-rc2/binaries/gitlab-runner-linux-amd64" }
```
链接的四种类型是" Runbook"," Package"," Image"和" Other"。
该资产具有以下直接链接:
## 发布证据[](#release-evidence "Permalink")
```
https://gitlab.com/gitlab-org/gitlab-runner/releases/v11.9.0-rc2/downloads/binaries/gitlab-runner-linux-amd64
```
每次创建发行版时,CODEChina 都会拍摄与之相关的数据快照。此数据保存在 JSON 文件中,称为*发布证据* , 它包括链接的里程碑和问题,并且可以促进内部流程,例如外部审核。
资产的物理位置可以随时更改,并且直接链接将保持不变.
要访问发布证据,请在"发布"页面上,单击" **证据集合"**标题下列出的 JSON 文件的链接。
### Source code[](#source-code "Permalink")
**注意:**禁用问题跟踪器后,将无法下载发布证据。
GitLab 会根据给定的 Git 标签自动生成`zip``tar.gz``tar.bz2``tar`归档的源代码. 这些是只读资产.
这是发行证据的一个示例:
### Links[](#links "Permalink")
A link is any URL which can point to whatever you like: documentation, built binaries, or other related materials. These can be both internal or external links from your GitLab instance.
链接的四种类型是" Runbook"," Package"," Image"和" Other".
## Release evidence[](#release-evidence "Permalink")
在 GitLab 12.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/26019) .
每次创建发行版时,GitLab 都会拍摄与之相关的数据快照. 此数据保存在 JSON 文件中,称为*发布证据* . 它包括链接的里程碑和问题,并且可以促进内部流程,例如外部审核.
要访问发布证据,请在"发布"页面上,单击" **证据集合"**标题下列出的 JSON 文件的链接.
您还可以[使用 API](../../../api/releases/index.html#collect-release-evidence-premium-only)生成现有版本的版本证据. 因此,每个版本可以具有多个版本证据快照. 您可以在"发布"页面上查看发布证据及其详细信息.
**注意:**禁用问题跟踪器后, [将无法下载](https://gitlab.com/gitlab-org/gitlab/-/issues/208397)发布证据.
这是释放证据对象的示例:
```
```markdown
{ "release": { "id": 5, "tag_name": "v4.0", "name": "New release", "project": { "id": 20, "name": "Project name", "created_at": "2019-04-14T11:12:13.940Z", "description": "Project description" }, "created_at": "2019-06-28 13:23:40 UTC", "description": "Release description", "milestones": [ { "id": 11, "title": "v4.0-rc1", "state": "closed", "due_date": "2019-05-12 12:00:00 UTC", "created_at": "2019-04-17 15:45:12 UTC", "issues": [ { "id": 82, "title": "The top-right popup is broken", "author_name": "John Doe", "author_email": "john@doe.com", "state": "closed", "due_date": "2019-05-10 12:00:00 UTC" }, { "id": 89, "title": "The title of this page is misleading", "author_name": "Jane Smith", "author_email": "jane@smith.com", "state": "closed", "due_date": "nil" } ] }, { "id": 12, "title": "v4.0-rc2", "state": "closed", "due_date": "2019-05-30 18:30:00 UTC", "created_at": "2019-04-17 15:45:12 UTC", "issues": [] } ], "report_artifacts": [ { "url":"https://gitlab.example.com/root/project-name/-/jobs/111/artifacts/download" } ] } }
```
### Collect release evidence[](#collect-release-evidence-premium-only "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/199065) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.10.
创建发布后,将自动收集发布证据. 要在其他任何时间启动证据收集,请使用[API 调用](../../../api/releases/index.html#collect-release-evidence-premium-only) . 您可以为一个发布多次收集发布证据.
在"发布"页面上可以看到证据收集快照,以及收集证据的时间戳.
### Include report artifacts as release evidence[](#include-report-artifacts-as-release-evidence-ultimate-only "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/32773) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 13.2.
创建发布时,如果[作业工件](../../../ci/pipelines/job_artifacts.html#artifactsreports)包含在最后运行的管道中,则它们会自动作为发布证据包含在发布中.
尽管工作工件通常会过期,但发布证据中包含的工件不会过期.
要启用作业工件收集,您需要同时指定两个:
1. [`artifacts:paths`](../../../ci/yaml/README.html#artifactspaths)
2. [`artifacts:reports`](../../../ci/pipelines/job_artifacts.html#artifactsreports)
```
ruby:
script:
- gem install bundler
- bundle install
- bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
artifacts:
paths:
- rspec.xml
reports:
junit: rspec.xml
```
如果管道成功运行,则在创建发布时, `rspec.xml`文件将保存为发布证据.
**注:**如果您[计划发布证据收集](#schedule-release-evidence-collection) ,则某些[证据](#schedule-release-evidence-collection)可能在证据收集时已经过期. 为了避免这种情况,可以使用[`artifacts:expire_in`](../../../ci/yaml/README.html#artifactsexpire_in)关键字. 了解更多在[这个问题上](https://gitlab.com/gitlab-org/gitlab/-/issues/222351) .
### Schedule release evidence collection[](#schedule-release-evidence-collection "Permalink")
在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23697) .
在 API 中:
* 如果您指定未来的`released_at`日期,则该发布将成为**即将发布的发布,**并且将在发布日期收集证据. 在此之前,您无法收集释放证据.
* 如果您使用过去的`released_at`日期,则不会收集任何证据.
* 如果您未指定`released_at`日期,则在创建发布的日期收集发布证据.
### Disable release evidence display[](#disable-release-evidence-display-core-only "Permalink")
`:release_evidence_collection`功能标志在 GitLab 自管理实例中默认启用. 要关闭它,请要求具有 Rails 控制台访问权限的 GitLab 管理员运行以下命令:
```
Feature.disable(:release_evidence_collection)
```
**注意:**无论使用此功能标志如何,都将收集发布证据,该标志仅启用或禁用"发布"页面上的数据显示.
## GitLab Releaser[](#gitlab-releaser "Permalink")
在 GitLab 12.10 中[引入](https://gitlab.com/gitlab-org/gitlab-releaser/-/merge_requests/6) .
GitLab Releaser 是一个 CLI 工具,用于从命令行或 GitLab 的 CI / CD 配置文件`.gitlab-ci.yml`管理 GitLab 版本.
有了它,您可以直接通过终端创建,更新,修改和删除发行版.
### 收集发布证据[](#collect-release-evidence-premium-only "Permalink")
有关详细信息,请阅读[GitLab Releaser 文档](https://gitlab.com/gitlab-org/gitlab-releaser/-/tree/master/docs/index.md) .
\ No newline at end of file
创建发布后,将自动收集发布证据。在"发布"页面上可以看到证据收集快照,以及收集证据的时间戳。
# 代码仓库[](#代码仓库 "Permalink")
# 代码仓库[](#repository "Permalink")
[存储库](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository)是用于将代码库存储在 GitLab 中并通过版本控制对其进行更改的存储库. 存储库是[项目的](../index.html)一部分,它具有许多其他功能.
[代码仓库](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository)是用于将代码库存储在 CODEChina 中并通过版本控制对其进行更改的存储库。代码仓库是[项目](/docs/user/project.md)的一部分,它具有许多其他功能。
## Create a repository[](#create-a-repository "Permalink")
## 新建一个代码仓库[](#create-a-repository "Permalink")
要创建一个新的存储库,您需要做的就是[创建一个新项目](../../../gitlab-basics/create-project.html)[创建](../../../gitlab-basics/create-project.html) [一个现有项目](forking_workflow.html) .
要创建一个新的代码仓库,您需要做的就是[创建一个新项目](/docs/basic/create-project.md)或 fork 一个现有项目。
创建新项目后,您可以通过 UI(请参阅以下部分)或通过命令行添加新文件. 要从命令行添加文件,请遵循创建新项目时在屏幕上显示的说明,或在[命令行基础](../../../gitlab-basics/start-using-git.html)文档中通读它们.
创建新项目后,您可以通过界面或通过命令行添加新文件, 要从命令行添加文件,请遵循创建新项目时在屏幕上显示的说明。
> **重要提示:**出于安全原因,强烈建议您在使用命令行时[通过 SSH 与 GitLab 连接](../../../ssh/README.html) .
> **重要提示:**出于安全原因,强烈建议您在使用命令行时[通过 SSH 与 GitLab 连接](/docs/ssh.md) 。
## Files[](#files "Permalink")
## 文件[](#files "Permalink")
使用存储库将文件存储在 GitLab 中. 在[GitLab 12.10 及更高版本中](https://gitlab.com/gitlab-org/gitlab/-/issues/33806) ,您将在存储库的文件树中根据其扩展名在文件名旁边看到一个图标:
在 CODEChina 上我们使用代码仓库来存储您的文件,您将在代码仓库的文件树中在文件名旁边看到一个与其扩展名称想对应的图标。
[![Repository file icons](img/8489a6c45ad75964ea7b4b54b9d9fcaa.png)](img/file_ext_icons_repo_v12_10.png)
### 新建和编辑文件[](#create-and-edit-files "Permalink")
### Create and edit files[](#create-and-edit-files "Permalink")
通过将文件推送到 GitLab,将代码库托管在 GitLab 存储库中. 您可以使用用户界面(UI),也可以[通过命令行将](../../../gitlab-basics/command-line-commands.html#start-working-on-your-project)本地计算机与 GitLab 连接.
要配置[GitLab CI / CD](../../../ci/README.html)来构建,测试和部署代码,请在存储库的根目录中添加一个名为[`.gitlab-ci.yml`](../../../ci/quick_start/README.html)的文件.
通过将文件推送到 CODEChina,您就可以将代码库托管在代码仓库中。您可以使用用户界面也可以通过命令行将本地计算机与我们相连。
**从用户界面:**
GitLab 的用户界面允许您执行许多 Git 命令,而无需触摸命令行. 即使您定期使用命令行,有时[通过 GitLab UI](web_editor.html)也更容易做到:
* [Create a file](web_editor.html#create-a-file)
* [Upload a file](web_editor.html#upload-a-file)
* [File templates](web_editor.html#template-dropdowns)
* [Create a directory](web_editor.html#create-a-directory)
* [Start a merge request](web_editor.html#tips)
* [Find file history](git_history.html)
* [Identify changes by line (Git blame)](git_blame.html)
用户界面允许您执行许多 Git 命令,而无在命令行中执行命令。您可以通过用户界面很容易的实现以下操作:
**在命令行中:**
* [新建文件](/docs/user/project/repo/web-editor.md#create-a-file)
* [上传文件](/docs/user/project/repo/web-editor.md#upload-a-file)
* [文件模板](/docs/user/project/repo/web-editor.md#template-dropdowns)
* [新建目录](/docs/user/project/repo/web-editor.md#create-a-directory)
* [新建合并请求](/docs/user/project/repo/web-editor.md#tips)
* [查找文件](/docs/user/project/repo/file-find.md)
* [blame](/docs/user/project/repo/blame.md))
要开始使用命令行,请通读[命令行基础文档](../../../gitlab-basics/command-line-commands.html) .
### 查找文件[](#find-files "Permalink")
### Find files[](#find-files "Permalink")
使用[文件查找器](/docs/user/project/repo/file-find.md)在代码仓库中搜索文件。
使用 GitLab 的[文件查找器](file_finder.html)在存储库中搜索文件.
### 支持的语言标记[](#supported-markup-languages-and-extensions "Permalink")
### Supported markup languages and extensions[](#supported-markup-languages-and-extensions "Permalink")
我们支持多种标记语言(有时称为[轻量标记语言](https://en.wikipedia.org/wiki/Lightweight_markup_language) ),您可以将其用于存储库中文件的内容,它们主要用于文档目的。
GitLab 支持多种标记语言(有时称为[轻量标记语言](https://en.wikipedia.org/wiki/Lightweight_markup_language) ),您可以将其用于存储库中文件的内容. 它们主要用于文档目的.
只需为文件选择正确的扩展名,系统就会根据标记语言来渲染它们。
只需为文件选择正确的扩展名,GitLab 就会根据标记语言来渲染它们.
| 标记语言 | Extensions |
| 标记语言 | 扩展名 |
| --- | --- |
| 纯文本 | `txt` |
| [Markdown](../../markdown.html) | `mdown`, `mkd`, `mkdn`, `md`, `markdown` |
| [Markdown](/docs/user/markdown.md) | `mdown`, `mkd`, `mkdn`, `md`, `markdown` |
| [reStructuredText](https://docutils.sourceforge.io/rst.html) | `rst` |
| [AsciiDoc](../../asciidoc.html) | `adoc`, `ad`, `asciidoc` |
| AsciiDoc | `adoc`, `ad`, `asciidoc` |
| [Textile](https://textile-lang.com/) | `textile` |
| [rdoc](http://rdoc.sourceforge.net/doc/index.html) | `rdoc` |
| [Org mode](https://orgmode.org/) | `org` |
| [creole](http://www.wikicreole.org/) | `creole` |
| [MediaWiki](https://www.mediawiki.org/wiki/MediaWiki) | `wiki`, `mediawiki` |
### Repository README and index files[](#repository-readme-and-index-files "Permalink")
### 项目 Readme 和 Index 文件[](#repository-readme-and-index-files "Permalink")
存储库中存在`README``index`文件时,它的内容将由 GitLab 自动预渲染,而无需打开它.
代码仓库中存在`README``index`文件时,我们将自动渲染他们的内容,用户无需打开它。
它们可以是纯文本,也可以具有[受支持的标记语言](#supported-markup-languages-and-extensions)的扩展名:
有关优先级的一些注意事项:
1.`README`文件和`index`文件同时存在时, `README`文件将始终优先.
2. 如果存在多个具有不同扩展名的文件,则按字母顺序排列,但不带扩展名的文件例外,该扩展名始终优先. 例如, `README.adoc`将优先于`README.md` ,而`README.rst`将优先于`README` .
1.`README`文件和`index`文件同时存在时, `README`文件将始终优先
2. 如果存在多个具有不同扩展名的文件,则按字母顺序排列,但不带扩展名的文件例外,该扩展名始终优先。例如, `README.adoc`将优先于`README.md` ,而`README.rst`将优先于`README`
### Jupyter Notebook files[](#jupyter-notebook-files "Permalink")
[Jupyter](https://jupyter.org/) Notebook(以前的 IPython Notebook)文件用于许多领域的交互式计算,并且包含用户会话的完整记录,并包括代码,叙述性文本,方程式和丰富的输出.
[Read how to use Jupyter notebooks with GitLab.](jupyter_notebooks/index.html)
[Jupyter](https://jupyter.org/) Notebook(以前的 IPython Notebook)文件用于许多领域的交互式计算,并且包含用户会话的完整记录,并包括代码,叙述性文本,方程式和丰富的输出。
### OpenAPI viewer[](#openapi-viewer "Permalink")
在 GitLab 12.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/19515) .
如果文件名包含`openapi``swagger`且扩展名为`yaml``yml``json` ,则 GitLab 可以使用其文件查看器呈现 OpenAPI 规范文件. 以下示例都是正确的:
如果文件名包含`openapi``swagger`且扩展名为`yaml``yml``json` ,就可以使用其文件查看器呈现 OpenAPI 规范文件。以下示例都是正确的:
* `openapi.yml`
* `openapi.yaml`
......@@ -99,83 +87,61 @@ GitLab 支持多种标记语言(有时称为[轻量标记语言](https://en.wi
然后,渲染它们:
1. 在 GitLab 的用户界面中导航至存储库中的 OpenAPI 文件.
1. 用户界面中导航至存储库中的 OpenAPI 文件.
2. 单击位于"显示源"和"编辑"按钮之间的"显示 OpenAPI"按钮(找到 OpenAPI 文件后,它将替换"显示渲染的文件"按钮).
## Branches[](#branches "Permalink")
## 分支[](#branches "Permalink")
有关详细信息,请参见[分支](branches/index.html) .
有关详细信息,请参见[分支](/docs/user/project/repo/branches.md)
## Commits[](#commits "Permalink")
## 提交[](#commits "Permalink")
[提交更改时](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) ,您会将这些更改引入分支机构. 通过命令行,您可以在提交之前多次提交.
[提交更改时](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) ,您会将这些更改引入分支机构。通过命令行,您可以在提交之前多次提交。
* **提交消息:**提交消息对于标识正在更改的内容以及更重要的原因至关重要. 在 GitLab 中,您可以将关键字添加到提交消息中,以执行以下操作之一:
* **触发 GitLab CI / CD 管道:**如果您的项目配置有[GitLab CI / CD](../../../ci/README.html) ,则将在每次推送而不是每次提交时触发一个管道.
* **跳过管道:**您可以在提交消息中添加关键字[`[ci skip]`](../../../ci/yaml/README.html#skip-pipeline) ,GitLab CI / CD 将跳过该管道.
* **交叉链接问题和合并请求:** [交叉链接](../issues/crosslinking_issues.html#from-commit-messages)非常适合跟踪工作流程中与之相关的内容. 如果您在提交消息中提到问题或合并请求,它们将显示在各自的线程上.
* **樱桃选择提交:**在 GitLab 中,您可以直接从 UI [樱桃选择提交](../merge_requests/cherry_pick_changes.html#cherry-picking-a-commit) .
* **还原提交:**轻松[将提交](../merge_requests/revert_changes.html#reverting-a-commit)从 UI [还原](../merge_requests/revert_changes.html#reverting-a-commit)到所选分支.
* **签署提交:**使用 GPG [签署您的提交](gpg_signed_commits/index.html) .
## Project and repository size[](#project-and-repository-size "Permalink")
在项目的" **详细信息"**页面上报告项目的大小. 报告的大小最多每 15 分钟更新一次,因此可能无法反映最近的活动. 显示的文件大小包括存储库文件,工件和 LFS.
由于压缩,内务处理和其他因素,每个项目的项目规模可能会略有不同.
* **交叉链接问题和合并请求:** [交叉链接](/docs/user/project/issues/crosslinking.md#from-commit-messages)非常适合跟踪工作流程中与之相关的内容. 如果您在提交消息中提到问题或合并请求,它们将显示在各自的线程上
* ** Cherry-pick 提交:**您可以直接从界面 [cherry-pick](/docs/user/project/merge-request/cherry-pick.md)
* **Revert 提交:**可以将提交从界面[还原](/docs/user/project/merge-request/revert.md#reverting-a-commit)到所选分支
* **签署提交:**使用 GPG [签署您的提交](/docs/user/project/repo/gpg-sign.md)
[储存库大小限制](../../admin_area/settings/account_and_limit_settings.html)可以由管理员设置. GitLab.com 的存储库大小限制[由 GitLab 设置](../../gitlab_com/index.html#repository-size-limit) .
## 项目和仓库大小[](#project-and-repository-size "Permalink")
## Contributors[](#contributors "Permalink")
在项目的**详细信息**页面上报告项目的大小 报告的大小最多每 15 分钟更新一次,因此可能无法反映最近的活动。显示的文件大小包括存储库文件,工件和 LFS。
代码库的所有贡献者都显示在项目的**设置>贡献者下** .
由于压缩,内务处理和其他因素,每个项目的项目规模可能会略有不同。
它们是从协作者中以最少的提交次数排序的,并显示在一个漂亮的图形上:
## 贡献者[](#contributors "Permalink")
[![contributors to code](img/d69ab181c07176aa054b0ceac08b702c.png)](img/contributors_graph.png)
代码库的所有贡献者都显示在项目的**代码>贡献者下**,按照协作者中的提交次数从多到少排序。
## Repository graph[](#repository-graph "Permalink")
## 分析[](#repository-graph "Permalink")
存储库图形以可视方式显示存储网络的历史记录,包括分支和合并. 这可以帮助您可视化存储库中使用的 Git 流策略:
代码仓库分析以可视方式显示存储网络的历史记录,包括分支和合并。这可以帮助您可视化存储库中使用的 Git 流策略:
[![repository Git flow](img/a1efb7c23a97e2901852465c9168914f.png)](img/repo_graph.png)
在您项目的**分析**下找到它。
在您项目的**Repository> Graph**下找到它.
## 代码语言[](#repository-languages "Permalink")
## Repository Languages[](#repository-languages "Permalink")
对于每个代码仓库的默认分支,系统将确定使用了哪些编程语言,并将其显示在项目页面上。如果缺少此信息,将在更新项目上的默认分支后添加,此过程最多可能需要 5 分钟。
对于每个存储库的默认分支,GitLab 将确定使用了哪种编程语言,并将其显示在项目页面上. 如果缺少此信息,将在更新项目上的默认分支后添加. 此过程最多可能需要 5 分钟.
并非所有文件都被检测到,比如文档、供应商代码和大多数标记语言都不会被检测。可以通过重写默认值来调整此行为。例如,为了能够检测到“.proto”文件,请在存储库根目录下的“.gittributes”中添加以下内容:
[![Repository Languages bar](img/e2e835cd5cd1be1afaa876fde2475fe5.png)](img/repository_languages_v12_2.gif)
Not all files are detected, among others; documentation, vendored code, and most markup languages are excluded. This behavior can be adjusted by overriding the default. For example, to enable `.proto` files to be detected, add the following to `.gitattributes` in the root of your repository.
```
```markdown
*.proto linguist-detectable=true
```
## Locked files[](#locked-files-premium "Permalink")
## 锁定文件[](#locked-files-premium "Permalink")
使用[文件锁定](../file_lock.html)来锁定文件,以防止发生任何冲突的更改.
使用文件锁定来锁定文件,以防止发生任何冲突的更改.
## Repository’s API[](#repositorys-api "Permalink")
您可以通过[存储库 API](../../../api/repositories.html)访问您的[存储库](../../../api/repositories.html) .
## Clone in Apple Xcode[](#clone-in-apple-xcode "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/45820) in GitLab 11.0
现在,可以使用位于用于克隆项目的 Git URL 旁边的新的" **在 Xcode 中打开"**按钮**在 Xcode 中**克隆包含`.xcodeproj``.xcworkspace`目录的项目. 该按钮仅在 macOS 上显示.
## Download Source Code[](#download-source-code "Permalink")
在 GitLab 11.11 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/24704)了对目录下载的支持.
您可以通过存储库 API访问您的存储库。
可以从 UI 下载存储在存储库中的源代码. 单击下载图标,将打开一个下拉列表,其中包含下载以下内容的链接:
## 下载源码[](#download-source-code "Permalink")
[![Download source code](img/0f88b0e1a49600472f2922218cec1ed7.png)](img/download_source_code.png)
可以从界面下载存储在代码仓库中的源代码,单击下载图标,将打开一个下拉列表,其中包含下载以下内容的链接:
* **源代码:**允许用户在他们当前正在查看的分支上下载源代码. 可用扩展名: `zip``tar``tar.gz``tar.bz2` .
* **目录:**仅在查看子目录时显示. 这使用户可以下载他们当前正在查看的特定目录. 也可以在`zip``tar``tar.gz``tar.bz2` .
* **工件:**允许用户下载最新 CI 构建的工件.
\ No newline at end of file
* **源代码:**允许用户在他们当前正在查看的分支上下载源代码。 可用扩展名: `zip``tar``tar.gz``tar.bz2`
* **目录:**仅在查看子目录时显示, 这使用户可以下载他们当前正在查看的特定目录, 也可以在`zip``tar``tar.gz``tar.bz2`
* **工件:**允许用户下载最新 CI 构建的工件
\ No newline at end of file
......@@ -24,4 +24,4 @@
**提示:**要缩小搜索范围,请在搜索词中包含`/` .
[![Find file button](img/file_finder_find_file_v12_10.png)](img/file_finder_find_file_v12_10.png)
\ No newline at end of file
[![Find file button](/docs/img/file_finder_find_file_v12_10.png)](/docs/img/file_finder_find_file_v12_10.png)
\ No newline at end of file
......@@ -179,7 +179,7 @@ git config --global commit.gpgsign true
2. 通过单击 GPG 徽章,将显示签名的详细信息
[![Signed commit with verified signature](/docs/img/project_signed_commit_unverified_signature.png)](img/project_signed_commit_unverified_signature.png)
[![Signed commit with verified signature](/docs/img/project_signed_commit_unverified_signature.png)](/docs/img/project_signed_commit_unverified_signature.png)
## 撤销 GPG 密钥[](#revoking-a-gpg-key "Permalink")
......
......@@ -71,7 +71,7 @@
git push origin --force --tags
```
[受保护的标签](../protected_tags.html)将导致此操作失败. 要继续,您必须删除标签保护,推送,然后重新启用受保护的标签.
[受保护的标签](/docs/user/project/protected-tag.md)将导致此操作失败. 要继续,您必须删除标签保护,推送,然后重新启用受保护的标签.
7. 手动执行项目整理
......@@ -93,7 +93,7 @@
1. 使用受支持的程序包管理器或从源代码[安装`git filter-repo`](https://github.com/newren/git-filter-repo/blob/main/INSTALL.md)
2. [从项目中](../settings/import_export.html#exporting-a-project-and-its-data)生成一个新的[导出](../settings/import_export.html#exporting-a-project-and-its-data)并下载
2. [从项目中](/docs/user/project/import.md#exporting-a-project-and-its-data)生成一个新的[导出](/docs/user/project/import.md#exporting-a-project-and-its-data)并下载
3. 使用`tar`解压缩备份:
......
# 服务台[](#服务台 "Permalink")
Version history
* [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/149) in [GitLab Premium](https://about.gitlab.com/pricing/) 9.1.
* 在 13.0 中[移至](https://gitlab.com/gitlab-org/gitlab/-/issues/214839) [GitLab Starter](https://about.gitlab.com/pricing/) .
* 在 13.2 中[移至](https://gitlab.com/gitlab-org/gitlab/-/issues/215364) [GitLab Core](https://about.gitlab.com/pricing/) .
## Overview[](#overview "Permalink")
Service Desk 是一个模块,可让您的团队直接在 GitLab 内部通过电子邮件与任何外部方联系. 无需外部工具. 在构建软件的过程中进行的持续对话可确保用户反馈直接在需要的地方结束,从而帮助您构建正确的功能来解决用户的实际问题.
借助 Service Desk,您可以为客户提供有效的电子邮件支持,他们现在可以通过电子邮件向您发送错误报告,功能请求或常规反馈,这些问题将作为新问题最终出现在您的 GitLab 项目中. 反过来,您的团队可以直接从项目中做出回应.
由于 Service Desk 直接内置在 GitLab 中,因此消除了多种工具和外部集成的复杂性和低效率,从而大大缩短了从反馈到软件更新的周期时间.
有关概述,请查看[GitLab 服务](https://about.gitlab.com/blog/2017/05/09/demo-service-desk/)台上的视频演示.
## Use cases[](#use-cases "Permalink")
例如,假设您为 iOS 或 Android 开发游戏. 该代码库托管在您的 GitLab 实例中,并通过 GitLab CI / CD 构建和部署.
这是 Service Desk 为您工作的方式:
1. 您向付费客户提供特定于项目的电子邮件地址,他们可以直接从应用程序内向您发送电子邮件.
2. 他们发送的每封电子邮件都会在相应的项目中产生一个问题.
3. 您的团队成员导航到 Service Desk 问题跟踪器,在这里他们可以查看新的支持请求并在内部相关问题中做出响应.
4. 您的团队与客户进行来回沟通以了解请求.
5. 您的团队开始着手实施代码以解决客户的问题.
6. 当您的团队完成实施后,合并请求将合并,问题将自动关闭.
7. 该客户将通过电子邮件成功出席,而无需真正访问您的 GitLab 实例.
8. 您的团队无需离开 GitLab(或设置任何集成)即可跟进客户,从而节省了时间.
## How it works[](#how-it-works "Permalink")
GitLab 服务台是一种简单的方法,使人们无需自己的用户帐户即可在您的 GitLab 实例中创建问题.
它为最终用户提供了一个在项目中创建问题的唯一电子邮件地址,并且可以通过 GitLab 界面或通过电子邮件发送答复. 最终用户将仅通过电子邮件看到该主题.
## Configuring Service Desk[](#configuring-service-desk "Permalink")
**注意:**在 GitLab.com 上启用了 Service Desk. 您可以跳过下面的步骤 1; 您只需要为每个项目启用它.
如果您具有项目维护者访问权限,则可以选择设置服务台. 请按照以下步骤操作:
1. 为 GitLab 实例[设置传入电子邮件](../../administration/incoming_email.html#set-it-up) .
* 我们建议使用[电子邮件子地址](../../administration/incoming_email.html#email-sub-addressing) ,但在 GitLab 11.7 及更高版本中,您也可以使用[全部接收邮箱](../../administration/incoming_email.html#catch-all-mailbox) .
2. 导航到项目的**"设置">"常规",**然后找到" **服务台"**部分.
3. 启用**激活服务台**切换. 这显示了一个唯一的电子邮件地址,可将问题发送给项目. 这些问题将是[机密的](issues/confidential_issues.html) ,因此它们仅对项目成员可见. 请注意,在 GitLab 11.7 中,我们更新了生成的电子邮件地址的格式. 仍然支持较旧的格式,但是允许现有的别名或联系人继续工作.
**危险:**任何人都可以使用此电子邮件地址在此项目上创建问题,无论他们是否有权访问您的 GitLab 实例. 我们建议**将其放在别名后面,**以便可以根据需要进行更改,并在您的 GitLab 实例上**[启用 Akismet](../../integration/akismet.html)**来向该服务添加垃圾邮件检查. 畅通无阻的电子邮件垃圾邮件将导致创建许多垃圾邮件问题.
如果存储库中有[模板](description_templates.html) ,则可以选择从选择器菜单中选择一个[模板](description_templates.html) ,以将其附加到所有 Service Desk 问题上.
[![Service Desk enabled](img/d32d8400522e9b5c9dd295fba00e1255.png)](img/service_desk_enabled.png)
现在已为此项目启用 Service Desk! 您应该能够从项目导航的" **问题"**菜单中访问它.
[![Service Desk Navigation Item](img/c42e6852cdd2c45b0a814f7a659ee5d2.png)](img/service_desk_nav_item.png)
### Using customized email templates[](#using-customized-email-templates "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2460) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.7.
当用户使用 Service Desk 提交新问题时,或在 Service Desk 问题上创建新便笺时,将向作者发送电子邮件.
这些电子邮件的正文可以使用模板进行自定义. 要创建新的自定义模板,请在存储库的`.gitlab/service_desk_templates/`目录内创建一个新的 Markdown( `.md` )文件. 提交并推送到您的默认分支.
#### Thank you email[](#thank-you-email "Permalink")
**谢谢电子邮件**是用户提交问题后发送给用户的电子邮件. 模板的文件名必须为`thank_you.md` . 您可以使用`%{ISSUE_ID}`占位符,它将由电子邮件中的问题 IID 替换;而`%{ISSUE_PATH}`占位符,将由项目路径和问题 IID 替换. 由于服务台问题被创建为机密(只有项目成员才能看到),因此回复电子邮件中没有提供问题链接.
#### New note email[](#new-note-email "Permalink")
**新笔记电子邮件**是当用户提交的问题有新评论时发送给用户的电子邮件. 模板的文件名必须为`new_note.md` . 您可以使用`%{ISSUE_ID}`占位符(将在电子邮件中替换为问题 IID), `%{ISSUE_PATH}`占位符(将替换为项目路径)以及问题 IID 和`%{NOTE_TEXT}`占位符(将替换为注释文本) .
### Using custom email display name[](#using-custom-email-display-name "Permalink")
在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/7529) .
您可以自定义电子邮件显示名称. 从服务台发送的电子邮件在" `From`标题中将具有此名称. 默认显示名称是`GitLab Support Bot` .
### Using custom email address[](#using-custom-email-address "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2201) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.0.
**注意:**默认情况下禁用此功能. 有关启用它的步骤,请参阅[启用自定义电子邮件地址](#enable-custom-email-address) .
如果在配置中启用了`service_desk_email`功能标记,则可以通过将电子邮件发送到自定义 Service Desk 电子邮件地址来创建 Service Desk 问题,该电子邮件地址应采用以下格式: `project_contact+%{key}@example.com` .
`%{key}`部分用于查找应在其中创建问题的项目. `%{key}`部分组合了项目的路径和可配置的项目名称后缀: `<project_full_path>-<project_name_suffix>` .
您可以在项目的服务台设置中设置项目名称后缀. 它只能包含小写字母( `az` ),数字( `0-9` )或下划线( `_` ).
[![Setting custom Service Desk email address](img/210e34a4dbdbe21aba5083c6f7dac9cb.png)](img/service_desk_custom_email_address_v13_0.png)
您可以将以下代码片段添加到您的配置中.
从源安装的示例:
```
service_desk_email:
enabled: true
address: "project_contact+%{key}@example.com"
user: "project_support@example.com"
password: "[REDACTED]"
host: "imap.gmail.com"
port: 993
ssl: true
start_tls: false
log_path: "log/mailroom.log"
mailbox: "inbox"
idle_timeout: 60
expunge_deleted: true
```
Omnibus GitLab 安装示例:
```
gitlab_rails['service_desk_email_enabled'] = true
gitlab_rails['service_desk_email_address'] = "project_contact+%{key}@gmail.com"
gitlab_rails['service_desk_email_email'] = "project_support@gmail.com"
gitlab_rails['service_desk_email_password'] = "[REDACTED]"
gitlab_rails['service_desk_email_mailbox_name'] = "inbox"
gitlab_rails['service_desk_email_idle_timeout'] = 60
gitlab_rails['service_desk_email_log_file'] = "/var/log/gitlab/mailroom/mail_room_json.log"
gitlab_rails['service_desk_email_host'] = "imap.gmail.com"
gitlab_rails['service_desk_email_port'] = 993
gitlab_rails['service_desk_email_ssl'] = true
gitlab_rails['service_desk_email_start_tls'] = false
```
在这种情况下,假设`mygroup/myproject`项目 Service Desk 设置的项目名称后缀设置为`support` ,并且用户将电子邮件发送到`project_contact+mygroup-myproject-support@example.com` . 结果,将在`mygroup/myproject`项目中从此电子邮件中创建一个新的 Service Desk 问题.
#### Enable custom email address[](#enable-custom-email-address "Permalink")
默认情况下,此功能附带`service_desk_custom_address`功能标志. 要打开此功能,请要求具有 Rails 控制台访问权限的 GitLab 管理员运行以下命令:
```
Feature.enable(:service_desk_custom_address)
```
配置选项与配置[传入电子邮件](../../administration/incoming_email.html#set-it-up)相同.
## Using Service Desk[](#using-service-desk "Permalink")
### As an end user (issue creator)[](#as-an-end-user-issue-creator "Permalink")
要创建服务台问题,最终用户无需了解有关 GitLab 实例的任何信息. 他们只是将电子邮件发送到给定的地址,然后收到一封确认回执的电子邮件:
[![Service Desk enabled](img/3b8b0bcac599d7207d90ed8194bed83e.png)](img/service_desk_confirmation_email.png)
这也使最终用户可以选择退订.
如果他们不选择退订,那么添加到该问题的任何新评论都将作为电子邮件发送:
[![Service Desk reply email](img/85055487485aff8bd5dc0cf97f711d52.png)](img/service_desk_reply.png)
他们发送的所有回复都将显示在问题本身中.
### As a responder to the issue[](#as-a-responder-to-the-issue "Permalink")
For responders to the issue, everything works as usual. They will see a familiar looking issue tracker, where they can see issues created via customer support requests and filter and interact with them just like other GitLab issues.
[![Service Desk Issue tracker](img/daa9468beb587bb748cbb9ec37bbb43f.png)](img/service_desk_issue_tracker.png)
来自最终用户的消息将显示为来自特殊的支持机器人用户,但是除此之外,您可以像平常一样阅读和编写评论:
[![Service Desk issue thread](img/1b69e9fcb692fa835e9b7e06fa856aee.png)](img/service_desk_thread.png)
注意:
* 项目的可见性(私有,内部,公共)不会影响 Service Desk.
* 项目的路径,包括其组或名称空间,将显示在电子邮件中.
### Support Bot user[](#support-bot-user "Permalink")
在后台,服务台由支持机器人的特殊用户创建问题. 该用户不计入许可证限制数.
\ No newline at end of file
# 项目设置[](#项目设置 "Permalink")
# 项目设置[](#settings "Permalink")
**注意:**只有项目维护者和管理员用户[有权](../../permissions.html#project-members-permissions)访问项目设置.
**注意:**只有项目 maintainer [有权](/docs/user/permissions.md)访问项目设置。
您可以通过导航到项目的主页并点击**设置**来调整[项目](../index.html)设置.
您可以通过导航到项目的主页并点击**设置**来调整[项目](/docs/user/project.md)设置。
## General settings[](#general-settings "Permalink")
## 常规设置[](#general-settings "Permalink")
在项目的常规设置下,您可以找到与项目功能有关的所有内容.
在项目的常规设置下,您可以找到与项目功能有关的所有内容
### General project settings[](#general-project-settings "Permalink")
调整项目的名称,描述,头像, [默认分支](../repository/branches/index.html#default-branch)和主题:
调整项目的名称,描述,头像,默认分支和主题:
[![general project settings](img/743ce9a40d40e900e957589a9024f116.png)](img/general_settings.png)
项目描述还部分支持[标准 Markdown](/docs/user/markdown.md#standard-markdown-and-extensions-in-gitlab) ,您可以使用[强调](/docs/user/markdown.md#emphasis)[链接](/docs/user/markdown.md#links)[换行符](/docs/user/markdown.md#line-breaks)为项目描述添加更多上下文。
项目描述还部分支持[标准 Markdown](../../markdown.html#standard-markdown-and-extensions-in-gitlab) . 您可以使用[强调](../../markdown.html#emphasis)[链接](../../markdown.html#links)[换行符](../../markdown.html#line-breaks)为项目描述添加更多上下文.
#### Compliance framework[](#compliance-framework-premium "Permalink")
#### 合规性框架[](#compliance-framework-premium "Permalink")
您可以选择一个框架标签来标识您的项目具有某些合规性要求或需要其他监督. 可用的标签包括:
* GDPR-通用数据保护法规
* HIPAA-健康保险可移植性和责任法案
* PCI-DSS-支付卡行业数据安全标准
* SOC 2-服务组织控制 2
* SOX-萨班斯-奥克斯利
* GDPR - General Data Protection Regulation
* HIPAA - Health Insurance Portability and Accountability Act
* PCI-DSS - Payment Card Industry-Data Security Standard
* SOC 2 - Service Organization Control 2
* SOX - Sarbanes-Oxley
### Sharing and permissions[](#sharing-and-permissions "Permalink")
### 共享和权限[](#sharing-and-permissions "Permalink")
对于您的存储库,您可以设置功能,例如公共访问,存储库功能,文档,访问权限等等. 要从您的项目中执行此操作,请转到**"设置"** >" **常规"** ,然后展开" **可见性","项目功能","权限"**部分.
对于您的代码仓库,您可以设置例如公共访问,存储库功能,文档,访问权限等等。要从您的项目中执行此操作,请转到**"项目设置"** >" **常规设置"** ,然后展开" **可见性","项目功能","权限"**部分。
现在,您可以更改[项目可见性](../../../public_access/public_access.html) . 如果将" **项目可见性"**设置为公开,则可以将某些功能的访问权限限制为" **仅项目成员"** . 此外,您可以选择[允许用户请求访问权限](../members/index.html#project-membership-and-requesting-access)的选项.
现在,您可以更改项目可见性,如果将" **项目可见性"**设置为公开,则可以将某些功能的访问权限限制为" **仅项目成员"** 。 此外,您可以选择[允许用户请求访问权限](/docs/user/project/member.md#project-membership-and-requesting-access)的选项。
**警告:**如果[降低项目的可见性级别](../../../public_access/public_access.html#reducing-visibility) ,则该操作将取消该项目的所有分支的链接.
**警告:**如果降低项目的可见性级别,则该操作将取消该项目的所有分支的链接。
使用开关启用或禁用以下功能:
| Option | 更多访问限制选项 | Description |
| --- | --- | --- |
| **Issues** | ✓ | 激活 GitLab 问题跟踪器 |
| **Repository** | ✓ | Enables [repository](../repository/) functionality |
| **合并请求** | ✓ | 启用[合并请求](../merge_requests/)功能; 另请参阅[合并请求设置](#merge-request-settings) |
| **Forks** | ✓ | Enables [forking](../index.html#fork-a-project) functionality |
| **Pipelines** | ✓ | Enables [CI/CD](../../../ci/README.html) functionality |
| **集装箱登记处** |   | 为您的 Docker 映像激活[注册表](../../packages/container_registry/) |
| **Git 大文件存储** |   | 允许使用[大文件](../../../topics/git/lfs/index.html#git-large-file-storage-lfs) |
| **Packages** |   | Supports configuration of a [package registry](../../../administration/packages/index.html#gitlab-package-registry-administration-premium-only) functionality |
| **Wiki** | ✓ | 启用单独的[文档](../wiki/)系统 |
| **Snippets** | ✓ | Enables [sharing of code and text](../../snippets.html) |
| **Pages** | ✓ | 允许您[发布静态网站](../pages/) |
| **指标仪表板** | ✓ | 控制对[指标仪表板的](../integrations/prometheus.html)访问 |
| **Repository** | ✓ | 启用 [仓库](/docs/user/project/repo.md) 功能 |
| **合并请求** | ✓ | 启用[合并请求](/docs/user/project/merge-request.md)功能; 另请参阅[合并请求设置](#merge-request-settings) |
| **Forks** | ✓ | 允许 fork 项目 |
| **Git 大文件存储** |   | 允许使用大文件 |
| **Packages** |   | Supports configuration of a package registry functionality |
| **Wiki** | ✓ | 启用单独的[文档](/docs/user/project/wiki.md)系统 |
| **指标仪表板** | ✓ | 控制对指标仪表板的访问 |
一些功能取决于其他功能:
* 如果禁用" **问题"**选项,则 GitLab 还将删除以下功能:
* **发行板**
* [**服务台**](#service-desk-starter)**注意:**禁用" **问题"**选项后,您仍然可以从合并请求访问**里程碑** .
* 此外,如果您同时禁用**Issues****Merge Requests** ,则将无法再访问:
* 如果禁用" ** Issue "**选项,则还将删除以下功能:
* **看板**
* [**服务台**](#service-desk-starter)**注意:**禁用" ** Issue "**选项后,您仍然可以从合并请求访问**里程碑** .
* 此外,如果您同时禁用**Issues****合并请求** ,则将无法再访问:
* **标签**
* **大事记**
* 如果禁用**存储库**功能,GitLab 还将为您的项目禁用以下功能:
* 如果禁用**代码仓库**功能,还将为您的项目禁用以下功能:
* **合并请求**
* **流水线**
* **集装箱登记处**
* **pipeline**
* **docker**
* **Git 大文件存储**
* **配套**
* 指标仪表板访问要求同时阅读项目环境和部署. 有权访问指标仪表板的用户还可以访问环境和部署.
* **environment**
* 指标仪表板访问要求同时阅读项目环境和部署,有权访问指标仪表板的用户还可以访问环境和部署。
#### Disabling email notifications[](#disabling-email-notifications "Permalink")
#### 禁用邮件通知[](#disabling-email-notifications "Permalink")
项目所有者可以通过选中" **禁用电子邮件通知"**复选框来**禁用**与项目相关的所有[电子邮件通知](../../profile/notifications.html#gitlab-notification-emails) .
项目 Owner 可以通过选中" **禁用电子邮件通知"**复选框来**禁用**与项目相关的所有[电子邮件通知](/docs/user/account/email-notify.md#gitlab-notification-emails)
### Merge request settings[](#merge-request-settings "Permalink")
### 合并请求设置[](#merge-request-settings "Permalink")
设置项目的合并请求设置:
* 设置合并请求方法(合并提交, [快速合并](../merge_requests/fast_forward_merge.html) ).
* 添加合并请求[描述模板](../description_templates.html#description-templates) .
* Enable [merge request approvals](../merge_requests/merge_request_approvals.html).
* Enable [merge only if pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.html).
* Enable [merge only when all threads are resolved](../../discussions/index.html#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved).
* Enable [`delete source branch after merge` option by default](../merge_requests/getting_started.html#deleting-the-source-branch)
* Configure [suggested changes commit messages](../../discussions/index.html#configure-the-commit-message-for-applied-suggestions)
* 设置合并请求方法(合并提交, [快速合并](/docs/user/project/merge-request/fast-forward.md)
* 添加合并请求[描述模板](/docs/user/project/description-template.md#description-templates)
* 启用合并请求批准
* 启用 [只有全部讨论内容解决后才允许合并](/docs/user/discussions.md#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved)
* 默认启用`合并后删除分支`
* 配置建议的更改提交信息
[![project's merge request settings](img/813cda0881e353d15eed9ca9417104f1.png)](img/merge_requests_settings.png)
### Service Desk[](#service-desk-starter "Permalink")
### 服务台[](#service-desk-starter "Permalink")
为您的项目启用[Service Desk](../service_desk.html)以提供客户支持.
为您的项目启用服务台以提供客户支持
### Export project[](#export-project "Permalink")
### 导出项目[](#export-project "Permalink")
了解如何在 GitLab 中[导出项目](import_export.html#importing-the-project) .
可以在 CODEChina 中导出您的项目
### Advanced settings[](#advanced-settings "Permalink")
### 高级设置[](#advanced-settings "Permalink")
在这里,您可以运行内部管理,存档,重命名,传输, [删除派生关系](#removing-a-fork-relationship)或删除项目.
在这里,您可以运行内部管理,存档,重命名,传输, [删除派生关系](#removing-a-fork-relationship)或删除项目
#### Archiving a project[](#archiving-a-project "Permalink")
#### 归档项目[](#archiving-a-project "Permalink")
归档项目后,所有用户都将其设为只读,并表明该项目已不再处于主动维护状态. 也可以取消归档已归档的项目. 只有项目所有者和管理员用户才[有权](../../permissions.html#project-members-permissions)归档项目.
归档项目后,所有用户都将其设为只读,并表明该项目已不再处于主动维护状态。也可以取消归档已归档的项目,只有项目 Owner 才[有权](/docs/user/permissions.md)归档项目。
归档项目后,存储库,问题,合并请求和所有其他功能均为只读. 归档的项目也隐藏在项目列表中.
归档项目后,存储库,问题,合并请求和所有其他功能均为只读,归档的项目也隐藏在项目列表中。
归档项目:
可以通过以下步骤归档一个项目:
1. 导航到您项目的 **设置>常规** .
2. 在" **高级"下** ,单击" **展开"** .
3. 在" **存档项目"**部分中,单击" **存档项目"**按钮.
4. 根据要求确认操作.
1. 进入到您项目的 **项目设置>常规设置**
2. 在" **高级"下** ,单击" **展开"**
3. 在" **存档项目"**部分中,单击" **存档项目"**按钮
4. 根据要求确认操作
#### Unarchiving a project[](#unarchiving-a-project "Permalink")
#### 取消项目归档[](#unarchiving-a-project "Permalink")
取消归档项目会删除对项目的只读限制,并使其在项目列表中可用. 只有项目所有者和管理员用户才[有权](../../permissions.html#project-members-permissions)取消归档项目.
取消归档项目会删除对项目的只读限制,并使其在项目列表中可用。只有项目 Owner 才[有权](/docs/user/permissions.md)取消归档项目。
要查找已归档的项目:
1. 以具有项目所有者或管理员权限的用户身份登录到 GitLab.
1. 以具有项目 Owner 的用户身份登录到 CODEChina
2. 如果你:
* 拥有项目的 URL,在浏览器中打开项目的页面.
* 没有项目的 URL:1.单击**项目>浏览项目** . 1.在" **排序项目"**下拉框中,选择" **显示存档的项目"** . 1.在**按名称过滤**字段中,提供项目的名称. 1.单击指向项目的链接以打开其" **详细信息"**页面.
* 没有项目的 URL:1.单击**项目>浏览项目** ;1.在" **排序项目"**下拉框中,选择" **显示存档的项目"** ;1.在**按名称过滤**字段中,提供项目的名称;1.单击指向项目的链接以打开其" **详细信息"**页面
接下来,要取消归档项目:
1. 导航到您项目的 **设置>常规** .
2. Under **Advanced**, click **Expand**.
3. 在" **取消存档项目"**部分中,单击" **取消存档项目"**按钮.
4. 根据要求确认操作.
1. 进入到您项目的 **项目设置>常规设置** .
2. **归档项目**, 点击 **展开**.
3. 在" **取消存档项目"**部分中,单击" **取消存档项目"**按钮
4. 根据要求确认操作
#### Renaming a repository[](#renaming-a-repository "Permalink")
#### 重命名一个项目[](#renaming-a-repository "Permalink")
**注意:**只有项目维护者和管理员用户才[有权](../../permissions.html#project-members-permissions)重命名存储库. 不要与项目名称混淆,也可以从[常规项目设置中](#general-project-settings)进行更改.
**注意:**只有项目维护者[有权](/docs/user/permissions.md#project-members-permissions)重命名代码仓库。不要与项目名称混淆,也可以从[常规项目设置中](#general-project-settings)进行更改。
项目的存储库名称定义其 URL(您用于通过浏览器访问该项目的 URL)及其在安装 GitLab 的文件磁盘上的位置.
项目的存储库名称定义其 URL(您用于通过浏览器访问该项目的 URL)及其在安装服务器的文件磁盘上的位置。
要重命名存储库:
1. 导航到您项目的 **设置>常规** .
2. 在" **高级"下** ,单击" **展开"** .
3. 在"重命名存储库"下,根据您的喜好更改"路径".
4. Hit **重命名项目**.
1. 进入到您项目的 **项目设置>常规设置**
2. 在" **高级"下** ,单击" **展开"**
3. 在"重命名存储库"下,根据您的喜好更改"路径"
4. Hit **重命名项目**
请记住,这可能会带来意想不到的副作用,因为使用旧网址的每个人都无法推送或拉动. 阅读有关[重命名存储库时重定向](../index.html#redirects-when-changing-repository-paths)发生的更多[信息](../index.html#redirects-when-changing-repository-paths) .
请记住,这可能会带来意想不到的副作用,因为使用旧网址的每个人都无法推送或拉动
#### Transferring an existing project into another namespace[](#transferring-an-existing-project-into-another-namespace "Permalink")
#### 转移项目[](#transferring-an-existing-project-into-another-namespace "Permalink")
**注意:**只有项目所有者和管理员用户才[有权](../../permissions.html#project-members-permissions)传输项目.
**注意:**只有项目 Owner 才[有权](/docs/user/permissions.md)转移项目。
在以下情况下,您可以将现有项目转移到[](../../group/index.html)
在以下情况下,您可以将现有项目转移到[织中](/docs/user/org.md)
* 您至少对该组具有**维护者** [权限](../../permissions.html#project-members-permissions) .
* 您至少是要转让的项目的**所有者** .
* 将项目转移到的组必须允许创建新项目.
* 您至少对该组具有** maintainer ** [权限](/docs/user/permissions.md#project-members-permissions)
* 您至少是要转让的项目的** Owner **
* 将项目转移到的组必须允许创建新项目
转移项目
开源通过以下操作进行项目的转移操作
1. 导航到您项目的 **设置>常规** .
2. 在" **高级"下** ,单击" **展开"** .
3. 在"传输项目"下,选择要将项目传输到的名称空间.
4. 按照说明键入项目路径,以确认传输.
1. 进入到您项目的 **项目设置>常规设置**
2. 在" **高级"下** ,单击" **展开"**
3. 在"传输项目"下,选择要将项目传输到的命名空间
4. 按照说明键入项目路径,以确认传输
完成后,您将被带到新项目的名称空间. 此时,请阅读[从旧项目到新项目](../index.html#redirects-when-changing-repository-paths)[重定向](../index.html#redirects-when-changing-repository-paths)发生了什么.
完成后,您将被带到新项目的命名空间。
**注意:**如果需要,GitLab 管理员可以使用管理界面将任何项目移动到任何名称空间.
#### 删除项目[](#remove-a-project "Permalink")
#### Remove a project[](#remove-a-project "Permalink")
**注意:**只有项目所有者和管理员才[有权](../../permissions.html#project-members-permissions)删除项目.
**注意:**只有项目所有者和管理员才[有权](/docs/user/permissions.md#project-members-permissions)删除项目.
删除项目:
1. 导航到您的项目,然后选择 **设置>常规>高级** .
2. 在"删除项目"部分中,单击" **删除项目"**按钮.
3. 根据要求确认操作.
1. 进入到您项目的 **项目设置>常规设置>高级**
2. 在"删除项目"部分中,单击" **删除项目"**按钮
3. 根据要求确认操作
这个动作:
* 删除包含所有相关资源(问题,合并请求等)的项目.
*[Premium 或 Silver](https://about.gitlab.com/pricing/)或更高级别的[GitLab 13.2](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) ,组管理员可以[](../../group/index.html#enabling-delayed-project-removal-premium)组内的项目[配置](../../group/index.html#enabling-delayed-project-removal-premium)为在延迟一段时间后删除. 启用后,实际删除将在[实例设置中](../../admin_area/settings/visibility_and_access_controls.html#default-deletion-adjourned-period-premium-only)指定的天数后发生.
**Warning:** The default behavior of [Delayed Project deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/32935) in GitLab 12.6 was changed to [Immediate deletion](https://gitlab.com/gitlab-org/gitlab/-/issues/220382) in GitLab 13.2.
#### Restore a project[](#restore-a-project-premium "Permalink")
在 GitLab 12.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/32935) .
要还原标记为删除的项目:
1. 导航到您的项目,然后选择 **设置>常规>高级** .
2. 在"还原项目"部分中,单击" **还原项目"**按钮.
#### Removing a fork relationship[](#removing-a-fork-relationship "Permalink")
分叉是为您不是会员[的项目](../repository/forking_workflow.html)[贡献](../repository/forking_workflow.html)的好方法. 如果您想自己使用 fork,而无需将[合并请求](../merge_requests.html)发送到上游项目,则可以安全地删除 fork 关系.
**注意:**删除后,将无法恢复派生关系. 您将不再能够将合并请求发送到源,并且如果有人分叉了您的项目,他们的分支也将失去关系.
为此:
1. 导航到项目的**设置>常规>高级** .
2. 在" **删除分叉关系"下** ,单击同样标记的按钮.
3. 按照说明键入项目的路径,以确认操作.
**注意:**只有项目所有者[有权](../../permissions.html#project-members-permissions)删除派生关系.
## Operations settings[](#operations-settings "Permalink")
* 删除包含所有相关资源(问题,合并请求等)的项目
### Error Tracking[](#error-tracking "Permalink")
#### 删除 fork 项目关系[](#removing-a-fork-relationship "Permalink")
配置错误跟踪以[在 GitLab 中](../operations/error_tracking.html)发现和查看[Sentry 错误](../operations/error_tracking.html) .
Fork 是为您不是项目成员的项目做贡献的好方法,如果您想自己使用 fork,而无需将[合并请求](/docs/user/project/merge-request.md)发送到上游项目,则可以安全地删除 fork 关系。
### Jaeger tracing[](#jaeger-tracing-ultimate "Permalink")
**注意:**删除后,将无法恢复 fork 关系。您将不再能够将合并请求发送到源,并且如果有人 fork 了您的项目,他们的分支也将失去关系。
添加 Jaeger 服务器的 URL,以使您的用户可以[从 GitLab 轻松访问 Jaeger UI](../../../operations/tracing.html) .
您可以通过以下操作来删除 fork 项目关系:
### Status Page[](#status-page "Permalink")
1. 进入到您项目的**项目设置>常规设置>高级** .
2. 在" **删除 fork 关系"下** ,单击删除按钮
3. 按照说明键入项目的路径,以确认删除操作
[添加存储凭据](../status_page/#syncing-incidents-to-the-status-page)以启用将公共问题同步到已[部署状态页面的功能](../status_page/#status-page-project) .
\ No newline at end of file
**注意:**只有项目 Owner [有权](/docs/user/permissions.md#project-members-permissions)删除 fork 关系。
\ No newline at end of file
# 时间跟踪[](#时间跟踪 "Permalink")
# 时间跟踪[](#time-track "Permalink")
在 GitLab 8.14 中引入.
时间跟踪允许您跟踪估计和花费在问题上的时间以及在 CODEChina 中合并请求。
时间跟踪允许您跟踪估计和花费在问题上的时间以及在 GitLab 中合并请求.
## Overview[](#overview "Permalink")
## 概览[](#overview "Permalink")
时间跟踪使您能够:
* 记录处理问题或合并请求所花费的时间.
* 添加完成问题或合并请求所需时间的估计.
您不必输入估算值即可输入花费的时间,反之亦然.
有关时间跟踪的数据显示在问题/合并请求侧栏上,如下所示.
* 记录处理 Issue 或合并请求所花费的时间
* 添加完成 Issue 或合并请求所需时间的估计
[![Time tracking in the sidebar](img/05a0790512923394006a9c3face18d58.png)](img/time_tracking_sidebar_v8_16.png)
您不必输入估算值即可输入花费的时间,反之亦然。
## How to enter data[](#how-to-enter-data "Permalink")
有关时间跟踪的数据显示在 Issue 及合并请求侧栏上。
时间跟踪使用了 GitLab 通过此新功能引入的两个[快速操作](quick_actions.html)`/spend``/estimate` .
## 如何更新数据[](#how-to-enter-data "Permalink")
快速操作既可以用于问题或合并请求的正文中,也可以用于问题或合并请求的注释中.
时间跟踪可以如下两个[快速操作](/docs/user/project/quick-actions.md)`/spend``/estimate`
下面是一个示例,说明如何在评论中使用这些新的快速操作.
快速操作既可以用于 Issue 或合并请求的正文中,也可以用于 Issue 或合并请求的注释中。
[![Time tracking example in a comment](img/37cb6e38ded4ec606f9bc7776f765e70.png)](img/time_tracking_example_v12_2.png)
添加时间条目(花费的时间或估计的时间)仅限于项目成员。
添加时间条目(花费的时间或估计的时间)仅限于项目成员.
### 预估[](#estimates "Permalink")
### Estimates[](#estimates "Permalink")
要输入估算值,请输入`/estimate` ,然后输入时间。例如,如果您需要输入 3 天 5 小时 10 分钟的估算值,则可以输入`/estimate 3d 5h 10m` ,我们支持的时间单位列在此帮助页面的底部。
要输入估算值,请输入`/estimate` ,然后输入时间. 例如,如果您需要输入 3 天 5 小时 10 分钟的估算值,则可以输入`/estimate 3d 5h 10m` . 我们支持的时间单位列在此帮助页面的底部.
每次输入新的时间估算值时,任何先前的时间估算值都将被该新值覆盖, 在发布或合并请求中应该只有一个有效的预估值。
每次输入新的时间估算值时,任何先前的时间估算值都将被该新值覆盖. 在发布或合并请求中应该只有一个有效的估计.
要完全删除估算,请使用`/remove_estimate`
要完全删除估算,请使用`/remove_estimate` .
### 花费时间[](#time-spent "Permalink")
### Time spent[](#time-spent "Permalink")
要输入花费的时间,请使用`/spend 3d 5h 10m`
要输入花费的时间,请使用`/spend 3d 5h 10m` .
每个新花费的时间条目将被添加到当前 Issue 或合并请求的总时间中。
每个新花费的时间条目将被添加到当前用于发布或合并请求的总时间中.
您可以通过输入负数来减少时间: `/spend -3d`将从总花费时间中删除 3 天,您所花费的时间不能少于 0 分钟,因此,如果您删除的时间量与已输入的时间相比更长,则系统将自动重置所花费的时间。
您可以通过输入负数来减少时间: `/spend -3d`将从总花费时间中删除 3 天. 您所花费的时间不能少于 0 分钟,因此,如果您删除的时间量与已输入的时间相比更长,则 GitLab 将自动重置所花费的时间.
要删除一次花费的所有时间,请使用`/remove_time_spent`
要删除一次花费的所有时间,请使用`/remove_time_spent` .
## Configuration[](#configuration "Permalink")
## 配置[](#configuration "Permalink")
以下时间单位可用:
......@@ -55,18 +47,6 @@
* 周(w)
* Days (d)
* 小时(h)
* 分钟(米)
默认转换率是 1mo = 4w,1w = 5d 和 1d = 8h.
### Limit displayed units to hours[](#limit-displayed-units-to-hours-core-only "Permalink")
在 GitLab 12.1 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/29469/) .
在 GitLab 自我管理实例中,可以通过**"** **本地化** **"****"管理">"设置">"首**选项"中的选项将时间单位的显示限制为小时.
启用此选项后,将显示`75h`而不是`1w 4d 3h` .
## Other interesting links[](#other-interesting-links "Permalink")
* 分钟(m)
* [Time Tracking landing page in the GitLab handbook](https://about.gitlab.com/solutions/time-tracking/)
\ No newline at end of file
默认转换率是 1mo = 4w,1w = 5d 和 1d = 8h。
\ No newline at end of file
# Web IDE[](#web-ide "Permalink")
版本历史
Web IDE 编辑器通过提供具有提交阶段的高级编辑器,可以更快,更轻松地为项目贡献更改。
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/4539) .
* 在 10.7 版中[移至](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/44157) GitLab Core.
## 打开 WebIDE[](#open-the-web-ide "Permalink")
Web IDE 编辑器通过提供具有提交阶段的高级编辑器,可以更快,更轻松地为项目贡献更改.
您可以从代码仓库文件列表和合并请求中查看文件时打开 Web IDE。
## Open the Web IDE[](#open-the-web-ide "Permalink")
[![Open Web IDE](/docs/img/open_web_ide.png)](/docs/img/open_web_ide.png)
您可以从存储库文件列表和合并请求中查看文件时打开 Web IDE.
## 查找文件[](#file-finder "Permalink")
[![Open Web IDE](img/7a0b5b2ee322d8676753d89561c1d3cb.png)](img/open_web_ide.png)
通过文件查找器,您可以通过搜索快速打开当前分支中的文件. 使用键盘快捷键`Command-p``Control-p``t` (当编辑器不在焦点时)启动文件查找器. 输入文件名或文件路径片段以开始查看结果。
## File finder[](#file-finder "Permalink")
## 语法高亮[](#syntax-highlighting "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18323) in [GitLab Core](https://about.gitlab.com/pricing/) 10.8.
通过文件查找器,您可以通过搜索快速打开当前分支中的文件. 使用键盘快捷键`Command-p``Control-p``t` (当编辑器不在焦点时)启动文件查找器. 输入文件名或文件路径片段以开始查看结果.
## Syntax highlighting[](#syntax-highlighting "Permalink")
正如 IDE 所期望的那样,Web IDE 中多种语言的语法突出显示将使您的直接编辑更加容易.
正如 IDE 所期望的那样,Web IDE 中多种语言的语法突出显示将使您的直接编辑更加容易。
Web IDE 当前提供:
* 基本语法着色,适用于各种编程,脚本和标记语言,例如 XML,PHP,C#,C ++,Markdown,Java,VB,Batch,Python,Ruby 和 Objective-C.
* 某些语言的 IntelliSense 和验证支持(显示错误和警告,提供智能补全,格式设置和概述). 例如:TypeScript,JavaScript,CSS,LESS,SCSS,JSON 和 HTML.
因为 Web IDE 基于[Monaco Editor](https://microsoft.github.io/monaco-editor/) ,所以您可以在[Monaco 语言](https://github.com/Microsoft/monaco-languages)存储库中找到更完整的受支持语言列表. 在幕后,摩纳哥使用[Monarch](https://microsoft.github.io/monaco-editor/monarch.html)库来突出显示语法.
* 基本语法着色,适用于各种编程,脚本和标记语言,例如 XML,PHP,C#,C ++,Markdown,Java,VB,Batch,Python,Ruby 和 Objective-C
* 某些语言的 IntelliSense 和验证支持(显示错误和警告,提供智能补全,格式设置和概述). 例如:TypeScript,JavaScript,CSS,LESS,SCSS,JSON 和 HTML
如果您缺少对任何语言的语法突出显示支持,我们准备了一份简短指南,介绍如何[为缺少的语言语法突出显示添加支持.](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/ide/lib/languages/README.md)
因为 Web IDE 基于[Monaco Editor](https://microsoft.github.io/monaco-editor/) ,所以您可以在[Monaco 语言](https://github.com/Microsoft/monaco-languages)存储库中找到更完整的受支持语言列表。 Monaco 在底层上使用[Monarch](https://microsoft.github.io/monaco-editor/monarch.html)库来突出显示语法。
**注意:**单个文件编辑基于[Ace 编辑器](https://ace.c9.io) .
**注意:**单个文件编辑基于[Ace 编辑器](https://ace.c9.io)
### Themes[](#themes "Permalink")
### 主题[](#themes "Permalink")
版本历史
我们支持的语法突出显示的所有主题都添加到了 Web IDE 的代码编辑器中,您可以从个人资料首选项中选择一个主题。
* 在 13.0 版的 GitLab 中[引入](https://gitlab.com/groups/gitlab-org/-/epics/2389) .
* GitLab 13.1 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/219228)了完全日光化黑暗主题.
GitLab 支持的语法突出显示的所有主题都添加到了 Web IDE 的代码编辑器中. 您可以从个人[资料首选项中](../../profile/preferences.html)选择一个主题.
主题仅在 Web IDE 文件编辑器中可用, [深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/209808)[日光化深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/219228)除外,它们适用于整个 Web IDE 屏幕.
主题仅在 Web IDE 文件编辑器中可用, [深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/209808)[日光化深色主题](https://gitlab.com/gitlab-org/gitlab/-/issues/219228)除外,它们适用于整个 Web IDE 屏幕。
| 日光灯主题 | 日晒黑暗主题 | 黑暗主题 |
| --- | --- | --- |
| [![Solarized Light Theme](img/d79207e6e4f140448c9dd5e6ebe5e380.png)](img/solarized_light_theme_v13_0.png) | [![Solarized Dark Theme](img/c187176d6b8d40e19db360c4c68ffb46.png)](img/solarized_dark_theme_v13_1.png) | [![Dark Theme](img/30152366655be1543f687603c8d34d96.png)](img/dark_theme_v13_0.png) |
| [![Solarized Light Theme](/docs/img/solarized_light_theme_v13_0.png)](/docs/img/solarized_light_theme_v13_0.png) | [![Solarized Dark Theme](/docs/img/solarized_dark_theme_v13_1.png)](/docs/img/solarized_dark_theme_v13_1.png) | [![Dark Theme](/docs/img/dark_theme_v13_0.png)](/docs/img/dark_theme_v13_0.png) |
## Configure the Web IDE[](#configure-the-web-ide "Permalink")
## 配置 WebIDE[](#configure-the-web-ide "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/23352) in [GitLab Core](https://about.gitlab.com/pricing/) 13.1.
Web IDE 支持使用[`.editorconfig`文件](https://editorconfig.org/)配置某些编辑器设置. 打开文件时,Web IDE 将在当前目录和所有父目录中查找名为`.editorconfig`的文件. 如果找到配置文件并且其设置与文件的路径匹配,则将在打开的文件上强制执行这些设置.
Web IDE 支持使用[`.editorconfig`文件](https://editorconfig.org/)配置某些编辑器设置,打开文件时,Web IDE 将在当前目录和所有父目录中查找名为`.editorconfig`的文件,如果找到配置文件并且其设置与文件的路径匹配,则将在打开的文件上强制执行这些设置。
Web IDE 当前支持以下`.editorconfig`设置:
......@@ -64,197 +48,45 @@ Web IDE 当前支持以下`.editorconfig`设置:
* `tab_width`
* `insert_final_newline`
## Commit changes[](#commit-changes "Permalink")
版本历史
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 10.4 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/4539) .
* 在 10.7 版中[移至](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/44157) GitLab Core.
*[GitLab 12.7 开始](https://gitlab.com/gitlab-org/gitlab/-/issues/33441) ,将自动暂存文件.
*[GitLab 12.9 开始](https://gitlab.com/gitlab-org/gitlab/-/issues/196609) ,删除了对暂存文件的支持,以防止丢失未暂存的数据. 您当前的所有更改都必须提交或放弃.
进行更改后,单击左下角的" **提交"**按钮以查看已更改文件的列表.
完成更改后,可以添加提交消息,提交更改并直接创建合并请求. 如果您没有对所选分支的写访问权,则会看到警告,但仍然可以创建新分支并启动合并请求.
要放弃特定文件中的更改,请在"更改"选项卡中单击该文件上的" **放弃更改"**按钮. 要放弃所有更改,请单击更改侧栏右上角的垃圾桶图标.
[![Commit changes](img/bad584bc95c83e26be6c67a2b54b26ae.png)](img/commit_changes_v12_9.png)
## Reviewing changes[](#reviewing-changes "Permalink")
提交更改之前,可以通过切换到查看模式或从更改列表中选择文件来将它们与上一次提交进行比较.
当您打开合并请求时,还可以使用其他查看模式,如果您提交更改,该模式将向您显示合并请求 diff 的预览.
## View CI job logs[](#view-ci-job-logs "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19279) in [GitLab Core](https://about.gitlab.com/pricing/) 11.0.
您可以使用 Web IDE 通过在 Web IDE 中打开分支或合并请求并打开失败作业的日志来快速修复失败的测试. 通过单击右上角的" **管道"**按钮,可以访问最新管道的所有作业的状态以及当前提交的作业跟踪.
管道状态也始终显示在左下方的状态栏中.
## Switching merge requests[](#switching-merge-requests "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19318) in [GitLab Core](https://about.gitlab.com/pricing/) 11.0.
要在创作的和分配的合并请求之间切换,请单击侧栏顶部的下拉列表以打开合并请求列表. 在切换到其他合并请求之前,您将需要提交或放弃所有更改.
## Switching branches[](#switching-branches "Permalink")
[Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/20850) in [GitLab Core](https://about.gitlab.com/pricing/) 11.2.
To switch between branches of the current project repository, click the dropdown in the top of the sidebar to open a list of branches. You will need to commit or discard all your changes before switching to a different branch.
## Markdown editing[](#markdown-editing "Permalink")
版本历史
* [GitLab Core](https://about.gitlab.com/pricing/) 10.7 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/18059)了 Markdown 预览.
* 支持在[GitLab Core](https://about.gitlab.com/pricing/) 13.1 中[引入的](https://gitlab.com/gitlab-org/gitlab/-/issues/22822)粘贴图像.
在 Web IDE 中编辑 Markdown 文件时,可以通过单击文件编辑器上方的" **预览 Markdown"**选项卡来预览更改. Markdown 预览支持[GitLab 风味 Markdown](../../markdown.html#gitlab-flavored-markdown-gfm) .
您还可以通过将任何本地图像直接粘贴到 Markdown 文件中来上传它们. 该图像将上传到同一目录,默认情况下命名为`image.png` . 如果已经存在相同名称的另一个文件,则将数字后缀自动添加到文件名.
## Live Preview[](#live-preview "Permalink")
## 提交更改[](#commit-changes "Permalink")
版本历史
进行更改后,单击左下角的" **提交"**按钮以查看已更改文件的列表。
*[GitLab Core](https://about.gitlab.com/pricing/) 11.2 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/19764) .
* 在 GitLab 13.0 中从*客户端评估* [重命名](https://gitlab.com/gitlab-org/gitlab/-/issues/213853)*实时预览* .
完成更改后,可以添加提交消息,提交更改并直接创建合并请求。如果您没有对所选分支的写访问权,则会看到警告,但仍然可以创建新分支并启动合并请求。
您可以使用 Web IDE 在浏览器中预览 JavaScript 项目. 此功能使用 CodeSandbox 编译和捆绑用于预览 Web 应用程序的 JavaScript.
要放弃特定文件中的更改,请在"更改"选项卡中单击该文件上的" **放弃更改"**按钮;要放弃所有更改,请单击更改侧栏右上角的删除图标。
[![Web IDE Live Preview](img/7efae901a0febb2a8e969415dced271a.png)](img/live_preview_v13_0.png)
## 查看更改[](#reviewing-changes "Permalink")
Additionally, for public projects an **在 CodeSandbox 中打开** button is available to transfer the contents of the project into a public CodeSandbox project to quickly share your project with others.
提交更改之前,可以通过切换到查看模式或从更改列表中选择文件来将它们与上一次提交进行比较。
### Enabling Live Preview[](#enabling-live-preview "Permalink")
当您打开合并请求时,还可以使用其他查看模式,如果您提交更改,该模式将向您显示合并请求 diff 的预览。
需要在 GitLab 实例管理员设置中启用实时预览功能. 在 GitLab.com 上为所有项目启用了实时预览
## 切换合并请求[](#switching-merge-requests "Permalink")
[![Admin Live Preview setting](img/fb0d67715160a5a049ca0b8e7d7af698.png)](img/admin_live_preview_v13_0.png)
要在创作的和分配的合并请求之间切换,请单击侧栏顶部的下拉列表以打开合并请求列表。在切换到其他合并请求之前,您将需要提交或放弃所有更改。
完成此操作后,您可以使用`package.json`文件和 Web IDE 内的`main`入口点预览项目. 下面显示了一个示例`package.json` .
## 切换分支[](#switching-branches "Permalink")
```
{ "main": "index.js", "dependencies": { "vue": "latest" } }
```
要在当前项目存储库的分支之间切换,请单击侧栏顶部的下拉列表以打开分支列表。在切换到其他分支之前,您需要提交或放弃所有更改。
## Interactive Web Terminals for the Web IDE[](#interactive-web-terminals-for-the-web-ide "Permalink")
## 编辑Markdown[](#markdown-editing "Permalink")
版本历史
在 Web IDE 中编辑 Markdown 文件时,可以通过单击文件编辑器上方的" **预览 Markdown"**选项卡来预览更改. Markdown 预览支持[GFM](/docs/user/markdown.md#gitlab-flavored-markdown-gfm)
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 11.6 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/5426) .
* 在 13.1 版中[移至](https://gitlab.com/gitlab-org/gitlab/-/issues/211685) GitLab Core.
您还可以通过将任何本地图像直接粘贴到 Markdown 文件中来上传它们,该图像将上传到同一目录,默认情况下命名为`image.png` 。 如果已经存在相同名称的另一个文件,则将数字后缀自动添加到文件名。
**警告:** Web IDE 的交互式 Web 终端当前处于**Beta 中** . 共享运行程序[尚不支持交互式 Web 终端](https://gitlab.com/gitlab-org/gitlab/-/issues/24674) ,因此您需要使用自己的私有运行程序来使用此功能.
## 预览[](#live-preview "Permalink")
[交互式 Web 终端](../../../ci/interactive_web_terminal/index.html)使项目[维护者](../../permissions.html#project-members-permissions)用户可以直接从 GitLab(包括通过 Web IDE)访问终端以与 Runner 进行交互.
您可以使用 Web IDE 在浏览器中预览 JavaScript 项目,此功能使用 CodeSandbox 编译和捆绑用于预览 Web 应用程序的 JavaScript。
### Runner configuration[](#runner-configuration "Permalink")
此外,对于公共项目,**在 CodeSandbox 打开**按钮可用于将项目内容转移到公共代码沙盒项目中,以便与其他人快速共享您的项目。
为了使交互式 Web 终端正常工作,需要在运行程序中配置一些内容:
### WebIDE 配置文件[](#web-ide-configuration-file "Permalink")
* 跑步者需要[正确配置`[session_server]`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html) . 本部分至少需要一个`session_timeout`值(默认为 1800 秒)和一个`listen_address`值. 如果未定义`advertise_address` ,则使用`listen_address` .
* 如果您对 GitLab 实例使用反向代理,则需要[启用](../../../administration/integration/terminal.html#enabling-and-disabling-terminal-support) Web 终端.
如果您打开终端并且作业已完成其任务,则终端将在[`[session_server].session_timeout`](https://docs.gitlab.com/runner/configuration/advanced-configuration.html)配置的持续时间内阻止作业完成,直到关闭终端窗口.
**注意:**并非所有执行程序都[受支持](https://docs.gitlab.com/runner/executors/) . [文件同步](#file-syncing-to-web-terminal)功能仅在 Kubernetes 运行程序上受支持.
### Web IDE configuration file[](#web-ide-configuration-file "Permalink")
为了启用 Web IDE 终端,您需要在存储库根目录内创建文件`.gitlab/.gitlab-webide.yml` . 该文件与[CI 配置文件的](../../../ci/yaml/README.html)语法非常相似,但有一些限制:
为了启用 Web IDE 终端,您需要在存储库根目录内创建文件`.gitlab/.gitlab-webide.yml` . 该文件与 CI 配置文件的语法非常相似,但有一些限制:
* 无法定义全局块(即: `before_script``after_script`
* 只能将一个名为`terminal`作业添加到该文件中.
* 仅允许使用关键字`image``services``tags``before_script``script``variables`来配置作业.
* 要连接到交互式终端, `terminal`作业必须仍然处于活动状态并且正在运行,否则终端将无法连接到作业的会话. 默认情况下, `script`关键字的值是`sleep 60`以防止作业结束并为 Web IDE 提供足够的连接时间. 这意味着,如果您覆盖默认`script`值,则必须添加一个使作业保持运行`sleep`的命令,例如`sleep` .
在下面的代码中,有此配置文件的示例:
```
terminal:
# This can be any image that has the necessary runtime environment for your project.
image: node:10-alpine
before_script:
- apt-get update
script: sleep 60
variables:
RAILS_ENV: "test"
NODE_ENV: "test"
```
终端启动后,将显示控制台,我们可以访问项目存储库文件.
**重要的** . 终端作业取决于分支. 这意味着用于触发和配置终端的配置文件将是 Web IDE 所选分支中的配置文件.
如果分支中没有配置文件,将显示错误消息.
### Running interactive terminals in the Web IDE[](#running-interactive-terminals-in-the-web-ide "Permalink")
如果交互式终端可供当前用户使用,则" **终端"**按钮将显示在 Web IDE 的右侧栏中. 单击此按钮可以打开或关闭终端选项卡.
打开后,该选项卡将显示" **启动 Web 终端"**按钮. 如果环境配置不正确,则可能禁用此按钮. 如果是这样,状态消息将描述问题. 以下是可能会禁用" **启动 Web 终端"的**一些原因:
* `.gitlab/.gitlab-webide.yml`不存在或设置错误.
* 该项目没有活跃的私人跑步者.
如果处于活动状态,则单击" **启动 Web 终端"**按钮将加载终端视图并开始连接到跑步者的终端. 任何时候都可以关闭并重新打开**终端**选项卡,并且不会影响终端的状态.
当终端启动并成功连接到跑步者时,跑步者的外壳提示将出现在终端中. 在这里,您可以输入将在跑步者的环境中执行的命令. 这类似于在本地终端或通过 SSH 运行命令.
在终端运行时,可以通过单击**Stop Terminal**停止它. 这将断开终端并停止跑步者的终端工作. 在此处,单击" **重新启动终端"**以启动新的终端会话.
### File syncing to web terminal[](#file-syncing-to-web-terminal "Permalink")
版本历史
*[GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/5276) .
* 在 13.1 版中[移至](https://gitlab.com/gitlab-org/gitlab/-/issues/211686) GitLab Core.
Web IDE 中的文件更改可以同步到正在运行的 Web 终端. 这使用户能够在预配置的终端环境中测试其代码更改.
**注意:**仅将 Web IDE 中的文件更改同步到终端. 在终端中所做的更改**不会**同步到 Web IDE. 此功能仅适用于 Kubernetes Runners.
要使文件同步到 Web 终端, `.gitlab/.gitlab-webide.yml`文件需要配置`webide-file-sync`服务. 这是使用此服务的 Node JS 项目的示例配置:
```
terminal:
# This can be any image that has the necessary runtime environment for your project.
image:
name: node:10-alpine
services:
- name: registry.gitlab.com/gitlab-org/webide-file-sync:latest
alias: webide-file-sync
entrypoint: ["/bin/sh"]
command: ["-c", "sleep 5 && ./webide-file-sync -project-dir $CI_PROJECT_DIR"]
ports:
# The `webide-file-sync` executable defaults to port 3000.
- number: 3000
```
* 项目目录可用**后** ,必须启动`webide-file-sync`可执行文件. 这就是为什么我们需要在`command`添加`sleep 5`的原因. 有关更多信息,请参[见此问题](https://gitlab.com/gitlab-org/webide-file-sync/-/issues/7) .
* `$CI_PROJECT_DIR`是 GitLab Runners 的[预定义环境变量](../../../ci/variables/predefined_variables.html) . 这是您项目的存储库所在的位置.
一旦将 Web 终端配置为用于文件同步,则在启动 Web 终端后,状态栏中将显示**终端**状态.
[![Web IDE Client Side Evaluation](img/37238acd557de0d61f0c3be198c56e00.png)](img/terminal_status.png)
在以下情况下,通过 Web IDE 对文件所做的更改将同步到正在运行的终端:
* 编辑文件时,按`Ctrl` + `S` (在 Mac 上为`Cmd` + `S` ).
* 编辑文件后,将单击文件编辑器之外的所有内容.
* 创建,删除或重命名文件或文件夹.
### Limitations[](#limitations "Permalink")
交互式终端处于 beta 阶段,并将在以后的发行版中继续进行改进. 同时,请注意,用户一次只能拥有一个活动终端.
### Troubleshooting[](#troubleshooting "Permalink")
* 如果终端的文本为灰色且无响应,则表明终端已停止,无法再使用. 停止的终端可以通过单击**Restart Terminal 重新启动** .
* 如果终端显示**Connection Failure** ,则终端无法连接到流道. 请尝试停止并重新启动终端. 如果问题仍然存在,请仔细检查流道配置.
\ No newline at end of file
* 仅允许使用关键字`image``services``tags``before_script``script``variables`来配置作业
* 要连接到交互式终端, `terminal`作业必须仍然处于活动状态并且正在运行,否则终端将无法连接到作业的会话。默认情况下, `script`关键字的值是`sleep 60`以防止作业结束并为 Web IDE 提供足够的连接时间。 这意味着,如果您覆盖默认`script`值,则必须添加一个使作业保持运行`sleep`的命令,例如`sleep`
\ No newline at end of file
# Wiki[](#wiki "Permalink")
每个 GitLab 项目都内置了一个称为 Wiki 的独立文档系统. 默认情况下,所有新项目都启用此功能,您可以在项目的**Wiki**下找到它.
每个项目都内置了一个称为 Wiki 的独立文档系统。 默认情况下,所有新项目都启用此功能,您可以在项目的**Wiki**下找到它。
如果您不想将文档保留在存储库中,但确实希望将其保留在代码所在的项目中,则 Wiki 非常方便.
如果您不想将文档保留在代码仓库中,但确实希望将其保留在代码所在的项目中,则 Wiki 非常方便。
您可以在 Web 界面中或[使用 Git 在本地](#adding-and-editing-wiki-pages-locally)创建 Wiki 页面,因为每个 Wiki 都是单独的 Git 存储库.
您可以在 Web 界面中或[使用 Git 在本地](#adding-and-editing-wiki-pages-locally)创建 Wiki 页面,因为每个 Wiki 都是单独的 Git 存储库
## First time creating the Home page[](#first-time-creating-the-home-page "Permalink")
## 创建 Home [](#first-time-creating-the-home-page "Permalink")
首次访问 Wiki 时,系统将指示您创建主页. 必须创建主页,因为它是查看 Wiki 时的登录页面. 您只需要填写**内容**部分,然后单击**创建页面** . 您以后可以随时对其进行编辑,因此继续写欢迎信息.
首次访问 Wiki 时,系统将指示您创建主页 Home 。它是查看 Wiki 时的默认页面,没有 Home 页的话您将看到的是 Wiki 的文件列表。您只需要填写**内容**部分,然后单击**创建页面** ,您以后可以随时对其进行编辑,因此继续写欢迎信息。
[![New home page](img/909d20c0dd57155c8ac404a81c2a30cb.png)](img/wiki_create_home_page.png)
## 新建 Wiki [](#creating-a-new-wiki-page "Permalink")
## Creating a new wiki page[](#creating-a-new-wiki-page "Permalink")
**注意:**需要 developer [权限](/docs/user/permissions.md)
**注意:**需要开发者[权限](../../permissions.html) .
通过单击可在所有 Wiki 页面中找到的" **新页面"**按钮来创建新页面。
通过单击可在所有 Wiki 页面中找到的" **新页面"**按钮来创建新页面.
系统将要求您为新的 Wiki 页面填写标题。
系统将要求您为新的 Wiki 页面填写标题.
您可以通过在标题中使用" /"指示子目录来为 Wiki 页面指定完整路径,任何丢失的目录将自动创建。例如, `docs/my-page`的标题将创建一个 Wiki 页面,其路径为`/wikis/docs/my-page`
您可以通过在标题中使用" /"指示子目录来为 Wiki 页面指定完整路径. 任何丢失的目录将自动创建. 例如, `docs/my-page`的标题将创建一个 Wiki 页面,其路径为`/wikis/docs/my-page` .
输入页面名称后,就该填写其内容了. Wiki 支持 Markdown,RDoc,AsciiDoc 和 Org。对于基于 Markdown 的页面,所有[Markdown 功能](/docs/user/markdown.md)均受支持,对于链接,则存在一些[特定](/docs/user/markdown.md#wiki-specific-markdown)[Wiki 的](/docs/user/markdown.md#wiki-specific-markdown)行为。
输入页面名称后,就该填写其内容了. GitLab Wiki 支持 Markdown,RDoc,AsciiDoc 和 Org. 对于基于 Markdown 的页面,所有[Markdown 功能](../../markdown.html)均受支持,对于链接,则存在一些[特定](../../markdown.html#wiki-specific-markdown)[Wiki 的](../../markdown.html#wiki-specific-markdown)行为.
在 Web 界面中,提交消息是可选的,但是 Wiki 是基于 Git 的,并且需要提交消息,因此如果您不输入消息,则会为您创建一条。
在 Web 界面中,提交消息是可选的,但是 GitLab Wiki 是基于 Git 的,并且需要提交消息,因此如果您不输入消息,则会为您创建一条.
当你都准备好了后,点击**建立页面** 就可以完成新页面的新建操作。
When you’re ready, click the **建立页面** and the new page will be created.
### 附件存储大小[](#attachment-storage "Permalink")
[![New page](img/0a61445809db70ca6bf85d986bf52223.png)](img/wiki_create_new_page.png)
通过界面上传到 Wiki 的任何文件都将存储在 Wiki Git 存储库中,如果您在本地克隆 Wiki 存储库,该文件将可用。
### Attachment storage[](#attachment-storage "Permalink")
### 页面标题中的特殊字符[](#special-characters-in-page-titles "Permalink")
在 GitLab 11.3 中[引入](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33475) .
Wiki 页面作为文件存储在 Git 代码仓库中,因此某些字符具有特殊含义:
从 GitLab 11.3 开始,通过 GitLab 界面上载到 Wiki 的任何文件都将存储在 Wiki Git 存储库中,如果您在本地克隆 Wiki 存储库,该文件将可用. GitLab 11.3 之前的所有上传文件都存储在 GitLab 本身中. 如果希望它们成为 Wiki 的 Git 存储库的一部分,则必须再次上传它们.
* 存储页面时,空格会转换为连字符
* 显示页面时,连字符( `-` )转换回空格
* 不能使用斜杠( `/` ),因为它们用作路径分隔符
### Special characters in page titles[](#special-characters-in-page-titles "Permalink")
### 文件及目录的长度限制[](#length-restrictions-for-file-and-directory-names "Permalink")
Wiki 页面作为文件存储在 Git 存储库中,因此某些字符具有特殊含义:
许多常见的文件系统[的文件名和目录名限制为 255 个字节](https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits) ,尽管 Git 和 CODEChina 都支持超出这些限制的路径,但是它们的存在使这些文件系统上的用户无法在本地检出 Wiki 存储库。
* 存储页面时,空格会转换为连字符.
* 显示页面时,连字符( `-` )转换回空格.
* 不能使用斜杠( `/` ),因为它们用作路径分隔符.
为了避免这种情况,通过界面和 API 编辑页面时会强制执行以下限制:
### Length restrictions for file and directory names[](#length-restrictions-for-file-and-directory-names "Permalink")
在 GitLab 12.8 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/24364) .
许多常见的文件系统[的文件名和目录名限制为 255 个字节](https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits) ,尽管 Git 和 GitLab 都支持超出这些限制的路径,但是它们的存在使这些文件系统上的用户无法在本地检出 Wiki 存储库.
为了避免这种情况,通过 GitLab Web 界面和 API 编辑页面时会强制执行以下限制:
* 页面标题为 245 个字节(文件扩展名保留 10 个字节).
* 255 个字节的目录名称.
* 页面标题为 245 个字节(文件扩展名保留 10 个字节)
* 255 个字节的目录名称
请注意:
* 非 ASCII 字符占用多个字节.
* 非 ASCII 字符占用多个字节
* 仍然可以通过 Git 在本地创建超出限制的文件和目录,但这可能会在其他人的计算机上中断.
## Editing a wiki page[](#editing-a-wiki-page "Permalink")
**注意:**需要开发者[权限](../../permissions.html) .
要编辑页面,只需单击" **编辑"**按钮. 从那里开始,您可以更改其内容. 完成后,单击" **保存更改"**以使更改生效.
## 编辑 Wiki [](#editing-a-wiki-page "Permalink")
### Adding a table of contents[](#adding-a-table-of-contents "Permalink")
**注意:**需要 developer [权限](/docs/user/permissions.md)
从 Wiki 页面中的标题生成目录,请使用`[[_TOC_]]`标签. 有关示例,请参阅[目录](../../markdown.html#table-of-contents) .
编辑页面,只需单击" **编辑"**按钮,然后您可以更改其内容;完成后,单击" **保存更改"**以使更改生效。
## Deleting a wiki page[](#deleting-a-wiki-page "Permalink")
### 添加目录[](#adding-a-table-of-contents "Permalink")
**注意:**需要维护者[权限](../../permissions.html) .
要从 Wiki 页面中的标题生成目录,请使用`[[_TOC_]]`标签。
仅在编辑页面时才能找到" **删除"**按钮. 单击它并确认您要删除页面.
## 删除 Wiki [](#deleting-a-wiki-page "Permalink")
## Moving a wiki page[](#moving-a-wiki-page "Permalink")
**注意:**需要 maintainer [权限](/docs/user/permissions.md)
通过在[编辑](#editing-a-wiki-page)表单的 Wiki 页面标题中指定完整路径,可以将 Wiki 页面从一个目录移动到另一个目录.
仅在编辑页面时才能找到" **删除"**按钮,单击它并确认您要删除页面。
[![Moving a page](img/7a0180479e056fe1c4aa11c3e8684906.png)](img/wiki_move_page_1.png)
## 移动 Wiki [](#moving-a-wiki-page "Permalink")
[![After moving a page](img/70117ebf119dd375e0def463921cc363.png)](img/wiki_move_page_2.png)
通过在[编辑](#editing-a-wiki-page)表单的 Wiki 页面标题中指定完整路径,可以将 Wiki 页面从一个目录移动到另一个目录。
为了将 Wiki 页面移动到根目录,必须在 Wiki 页面标题前加上斜杠( `/` )字符.
为了将 Wiki 页面移动到根目录,必须在 Wiki 页面标题前加上斜杠( `/` )字符
## Viewing a list of all created wiki pages[](#viewing-a-list-of-all-created-wiki-pages "Permalink")
## 查看 Wiki 列表[](#viewing-a-list-of-all-created-wiki-pages "Permalink")
每个 Wiki 都有一个侧边栏,从中可以找到所创建页面的简短列表. 该列表按字母顺序排列.
每个 Wiki 都有一个侧边栏,从中可以找到所创建页面的简短列表,该列表按字母顺序排列。
[![Wiki sidebar](img/03d3f984ea7608322b1fd6a7feba47c0.png)](img/wiki_sidebar.png)
如果页面很多,则不会在侧边栏中列出所有页面, 单击**查看所有页面****查看所有页面**
如果页面很多,则不会在侧边栏中列出所有页面. 单击**查看所有页面****查看所有页面** .
## 查看 Wiki 历史[](#viewing-the-history-of-a-wiki-page "Permalink")
## Viewing the history of a wiki page[](#viewing-the-history-of-a-wiki-page "Permalink")
Wiki 页面随时间的变化记录在 Wiki 的 Git 存储库中,您可以通过单击**页面历史**按钮来查看它们。
Wiki 页面随时间的变化记录在 Wiki 的 Git 存储库中,您可以通过单击**Page history**按钮来查看它们.
从历史记录页面中,您可以看到页面的修订版(Git commit SHA)、作者、提交消息以及上次更新时间,要查看页面的先前版本的外观,请在" **页面版本"**列中单击修订号。
从历史记录页面中,您可以看到页面的修订版(Git commit SHA),其作者,提交消息以及上次更新时间. 要查看页面的先前版本的外观,请在" **页面版本"**列中单击修订号.
[![Wiki page history](img/2fdc2024eee83764328fb015ffd4e392.png)](img/wiki_page_history.png)
### Viewing the changes between page versions[](#viewing-the-changes-between-page-versions "Permalink")
在 GitLab 13.2 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/15242) .
### 查看 Wiki 版本差异[](#viewing-the-changes-between-page-versions "Permalink")
类似于版本化的差异文件视图,您可以看到在给定的 Wiki 页面版本中所做的更改:
1. 导航到您感兴趣的 Wiki 页面.
2. 单击**页面历史记录**以查看所有页面版本.
3. 单击" **更改"**列中的提交消息以获取您感兴趣的版本:
[![Wiki page changes](img/9cc2ca9eb5afc113cacfbc529374fe3b.png)](img/wiki_page_diffs_v13_2.png)
## Wiki activity records[](#wiki-activity-records "Permalink")
版本历史
1. 进入到您感兴趣的 Wiki 页面
2. 单击**页面历史记录**以查看所有页面版本
3. 单击" **更改"**列中的提交消息以获取您感兴趣的版本
* 在 GitLab 12.10 中[引入](https://gitlab.com/gitlab-org/gitlab/-/issues/14902) .
* 它部署在功能标记后面,默认情况下处于禁用状态.
* 在 GitLab.com 上启用了它.
* 要在 GitLab 自管实例中使用它,请让 GitLab 管理员[启用它](#enable-or-disable-wiki-events-core-only) .
## 本地添加和编辑 Wiki[](#adding-and-editing-wiki-pages-locally "Permalink")
Wiki 事件(创建,删除和更新)由 GitLab 跟踪,并显示在[用户个人资料](../../profile/index.html#user-profile)[](../../group/index.html#view-group-activity)[项目](../index.html#project-activity)活动页面上.
由于 Wiki 基于 Git 存储库,因此您可以像在其他所有 Git 存储库中一样在本地克隆它们并进行编辑。
### Limitations[](#limitations "Permalink")
在右侧栏上,单击" **克隆存储库",**然后按照屏幕上的说明进行操作。
只有在浏览器中或通过 API 进行的编辑才会记录其活动. 当前在活动列表中未列出通过 Git 进行和推送的编辑.
根据您要使用的标记语言,您在本地添加到 Wiki 的文件必须具有以下受支持的扩展名之一,否则当推送到 CODEChina 时将不会显示这些文件:
### Enable or disable Wiki Events[](#enable-or-disable-wiki-events-core-only "Permalink")
* Markdown 扩展名: `.mdown``.mkd``.mkdn``.md``.markdown`
* AsciiDoc 扩展名: `.adoc``.ad``.asciidoc`
* 其他标记扩展名: `.textile``.rdoc``.org``.creole``.wiki``.mediawiki``.rst`
Wiki 事件活动正在开发中,尚未准备好用于生产. 它部署在**默认情况下禁用**的功能标志的后面. [有权访问 GitLab Rails 控制台的 GitLab 管理员](../../../administration/troubleshooting/navigating_gitlab_via_rails_console.html#starting-a-rails-console-session)可以为您的实例启用它. 欢迎您对其进行测试,但使用风险自负.
## 自定义侧边栏[](#customizing-sidebar "Permalink")
要启用它:
在项目的 Wiki 页面上,有一个右侧导航,默认情况下呈现带有层次结构的完整 Wiki 页面列表。
```
Feature.enable(:wiki_events)
```
禁用它:
```
Feature.disable(:wiki_events)
```
## Adding and editing wiki pages locally[](#adding-and-editing-wiki-pages-locally "Permalink")
由于 Wiki 基于 Git 存储库,因此您可以像在其他所有 Git 存储库中一样在本地克隆它们并进行编辑.
在右侧栏上,单击" **克隆存储库",**然后按照屏幕上的说明进行操作.
根据您要使用的标记语言,您在本地添加到 Wiki 的文件必须具有以下受支持的扩展名之一,否则当推送到 GitLab 时将不会显示这些文件:
* Markdown 扩展名: `.mdown``.mkd``.mkdn``.md``.markdown` .
* AsciiDoc 扩展名: `.adoc``.ad``.asciidoc` .
* 其他标记扩展名: `.textile``.rdoc``.org``.creole``.wiki``.mediawiki``.rst` .
## Customizing sidebar[](#customizing-sidebar "Permalink")
在项目的 Wiki 页面上,有一个右侧导航,默认情况下呈现带有层次结构的完整 Wiki 页面列表.
要自定义边栏,您可以创建一个名为`_sidebar`的文件以完全替换默认导航.
**警告:**除非您从自定义导航链接`_sidebar`文件,否则要进行编辑,必须输入以下内容直接从浏览器的地址栏中访问: `https://gitlab.com/<namespace>/<project_name>/-/wikis/_sidebar` : `_sidebar` /- `https://gitlab.com/<namespace>/<project_name>/-/wikis/_sidebar` (对于自我管理的 GitLab 实例,将`gitlab.com`替换为实例的 URL).
您可以创建一个名为`_sidebar`的文件以完全替换默认导航,进行自定义设置。
`_sidebar`示例(使用 Markdown 格式):
```
```markdown
### [Home](home)
- [Hello World](hello)
- [Foo](foo)
......@@ -175,6 +122,4 @@ Feature.disable(:wiki_events)
---
- [Sidebar](_sidebar)
```
计划支持使用自定义侧面导航显示生成的目录.
\ No newline at end of file
```
\ No newline at end of file
......@@ -8,7 +8,7 @@
点击**Issue**时 ,您会立即看到分配给您的未解决 Issue:
[![Issues assigned to you](/../../docs/img/issues_assigned_to_you.png)](img/issues_assigned_to_you.png)
[![Issues assigned to you](/docs/img/issues_assigned_to_you.png)](/docs/img/issues_assigned_to_you.png)
您可以浏览 **开放中**, **已关闭**, 或 **全部** issues。
......@@ -18,7 +18,7 @@
您还可以在屏幕上方的搜索框中找到由您创建或分配给您的 Issue 及合并请求的快捷入口:
[![shortcut to your issues and mrs](/../../docs/img/issues_mrs_shortcut.png)](img/issues_mrs_shortcut.png)
[![shortcut to your issues and mrs](/docs/img/issues_mrs_shortcut.png)](/docs/img/issues_mrs_shortcut.png)
### Issue 或合并请求列表过滤[](#filtering-issue-and-merge-request-lists "Permalink")
......@@ -28,9 +28,9 @@
2. 在出现的下拉菜单中,选择您要过滤的属性:
* 作者
* 指派人
* [里程碑](../project/milestones/index.html)
* [里程碑](/docs/user/project/milestone.md)
* Release
* [标签](../project/labels.html)
* [标签](/docs/user/project/label.md)
* 我的反应
* 机密
* Epic
......@@ -43,13 +43,13 @@
例如,按作者`=` Jane 和 Milestone `!=` 12.6 进行过滤,以解决 Jane 是作者而里程碑不是 12.6 的问题.
[![filter issues in a project](/../../docs/img/issue_search_filter_v12_7.png)](img/issue_search_filter_v12_7.png)
[![filter issues in a project](/docs/img/issue_search_filter_v12_7.png)](/docs/img/issue_search_filter_v12_7.png)
### 按 **无** / **任何**过滤[](#filtering-by-none--any "Permalink")
一些过滤字段(例如里程碑和指派人)允许您按**无****任何**进行过滤。
[![filter by none any](/../../docs/img/issues_filter_none_any.png)](img/issues_filter_none_any.png)
[![filter by none any](/docs/img/issues_filter_none_any.png)](/docs/img/issues_filter_none_any.png)
选择" **无"**将返回该字段为空值的结果,即没有里程碑或没有指派人;
......@@ -80,7 +80,7 @@
您可以通过单击搜索条左侧的下拉框来查看最近的搜索,单击搜索条目可以再次进行该搜索。此功能可用于 Issue 及合并请求,搜索结果存储在本地浏览器中。
[![search history](/../../docs/img/search_history.gif)](img/search_history.gif)
[![search history](/docs/img/search_history.gif)](/docs/img/search_history.gif)
## 移除过滤条件[](#removing-search-filters "Permalink")
......@@ -98,13 +98,13 @@
## 待办事项[](#to-do-list "Permalink")
可以通过"待办事项"和"完成"来搜索您的[待办事项列表](../todos.html#gitlab-to-do-list) 。您可以按项目,作者,类型和操作[过滤](../todos.html#filtering-your-to-do-list)它们。另外,您可以按[**标签优先级**](../../user/project/labels.html#label-priority)**最后创建****最早创建**对其进行排序。
可以通过"待办事项"和"完成"来搜索您的[待办事项列表](/docs/user/todo.md) 。您可以按项目,作者,类型和操作[过滤](/docs/user/todo.md#filtering-your-to-do-list)它们。另外,您可以按[**标签优先级**](/docs/user/project/label.md#label-priority)**最后创建****最早创建**对其进行排序。
## 项目[](#projects "Permalink")
您可以从导航中项目菜单栏去搜索和发现项目,方法是依次点击**项目>浏览项目** , 在" **按名称过滤** "字段上,输入要查找的项目或组织名称即可。
你也可以去找你的项目[出演](../project/index.html#star-a-project)**加星标的项目** ),并**探索**所有的公共和内部项目 GitLab.com 可用,从中你可以通过可视性筛选,通过**趋势** ,最好与**大多数明星**评分,或他们的**全部** .
你也可以去找你的项目[ Star ](/docs/basic/create-project.md#star-a-project)**加星标的项目** ),并**探索**所有的公共和内部项目 GitLab.com 可用,从中你可以通过可视性筛选,通过**趋势** ,最好与**大多数明星**评分,或他们的**全部** .
您还可以按**名称****最后创建****最旧创建****最后更新****最新更新****所有者**对搜索结果中的项目进行排序,并选择隐藏或显示**已归档的项目**
......@@ -118,7 +118,7 @@
## 看板[](#issue-boards "Permalink")
[看板](../../user/project/issue_board.html) 中,您可以按**作者****指派人****里程碑****标签**过滤 Issue。您还可以从键入时加载的字段中**按名称过滤**
[看板](/docs/user/project/kanban.md) 中,您可以按**作者****指派人****里程碑****标签**过滤 Issue。您还可以从键入时加载的字段中**按名称过滤**
当您要添加**Issue**到看板中以便在看板中搜索时,请点击屏幕右上角的**添加 Issue**按钮,除了按**名称**过滤它们之外,您还可以从中找到一个模式窗口**作者****受让人****里程碑****标签** ,选择多个问题以添加到您选择的列表中。
......@@ -126,10 +126,6 @@
利用 Elasticsearch 进行更快,更高级的代码搜索。
[关于高级全局搜索](/search/global)
## 高级语法搜索[](#advanced-syntax-search-starter "Permalink")
使用高级语法搜索可获得更具针对性的搜索结果。
[关于高级语法搜索](/search/syntax)
\ No newline at end of file
# 高级全局搜索[](#高级全局搜索 "Permalink")
版本历史
* 在 GitLab [Starter](https://about.gitlab.com/pricing/) 8.4 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109) .
**GitLab.com 的可用性:**高级全局搜索(由 Elasticsearch 支持)在 GitLab.com 上尚不可用. 它将在 2020 年第三季度为所有付费群体逐步启用.请[遵循此史诗](https://gitlab.com/groups/gitlab-com/-/epics/649) ,以获取时间表上的最新更新.
利用 Elasticsearch 在整个 GitLab 实例上进行更快,更高级的代码搜索.
这是用户文档. 要安装和配置 Elasticsearch,请访问[管理员文档](../../integration/elasticsearch.html) .
## Overview[](#overview "Permalink")
GitLab 中的 Advanced Global Search 是一项功能强大的搜索服务,可以节省您的时间. 现在,您可以在其他团队中搜索可以为您自己的项目提供帮助的代码,而不必创建重复的代码和浪费时间.
manbetx 客户端打不开利用[Elasticsearch](https://www.elastic.co/elasticsearch/)的搜索功能,并在搜索时启用它:
* Projects
* Repositories
* Commits
* Issues
* 合并要求
* Milestones
* 注释(评论)
* Snippets
* Wiki
## Use cases[](#use-cases "Permalink")
高级全局搜索在各种情况下都非常有用.
### Faster searches[](#faster-searches "Permalink")
如果您要处理大量数据,并希望保持 GitLab 的快速搜索,高级全局搜索将帮助您实现这一目标.
### Promote innersourcing[](#promote-innersourcing "Permalink")
您的公司可能由许多不同的开发人员团队组成,每个开发人员团队都有各自的团队来托管各种项目. 您的某些应用程序可能会相互连接,因此您的开发人员需要立即在整个 GitLab 实例中进行搜索并找到他们搜索的代码.
## Searching globally[](#searching-globally "Permalink")
像以前一样使用搜索,GitLab 会向您显示您有权访问的每个项目中的匹配代码.
[![Advanced Global Search](img/a3626522e1409168b7c977ecebbaee6e.png)](img/advanced_global_search.png)
您还可以使用提供一些有用查询的[高级语法搜索](advanced_search_syntax.html) .
**注意:** Elasticsearch 仅具有默认分支的数据. 这意味着,如果您转到存储库树并将分支从默认分支切换到其他分支,那么即使启用了 Elasticsearch,常规搜索也会提供搜索结果页面中的"代码"选项卡.
\ No newline at end of file
# 高级语法搜索[](#高级语法搜索 "Permalink")
版本历史
*[GitLab Enterprise Starter](https://about.gitlab.com/pricing/) 9.2 中引入
**GitLab.com 可用性:**自 2020-07-10 起,在 GitLab.com 上启用了 Bronze 及更高版本的 Advanced Global Search(由 Elasticsearch 支持).
使用高级查询获得更具针对性的搜索结果.
这是用户文档. 要安装和配置 Elasticsearch,请访问[管理员文档](../../integration/elasticsearch.html) .
## Overview[](#overview "Permalink")
"高级语法搜索"是" [高级全局搜索"](advanced_global_search.html)的子集,如果您想要更具体的搜索结果,可以使用它.
Advanced Global Search 仅支持搜索[默认分支](../project/repository/branches/index.html#default-branch) .
## Use cases[](#use-cases "Permalink")
例如,假设您开发的产品依赖于另一个组中托管的另一种产品的代码.
由于在您的 GitLab 实例下托管了数百个不同的项目,因此您需要搜索结果尽可能地高效. 您对要查找的内容有感觉(例如,函数名),但是同时您也不太确定.
在这种情况下,在查询中使用高级搜索语法将产生更好的结果.
## Using the Advanced Syntax Search[](#using-the-advanced-syntax-search "Permalink")
高级语法搜索支持带有前缀,布尔运算符等的模糊或精确搜索查询.
可以在[Elasticsearch 文档中](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/query-dsl-simple-query-string-query.html#_simple_query_string_syntax)找到完整的详细信息,但是这里有一个快速指南:
* 搜索以任何顺序搜索查询中的所有单词,例如:搜索`display bug`问题将以任何顺序返回匹配这两个单词的所有问题.
* 要查找确切的词组(仍然适用词干),请使用双引号: `"display bug"`
* 要查找未提及显示的错误,请使用`-``bug -display`
* 要查找显示或声音中的错误,请使用`|``bug display | sound` `bug display | sound`
* 要组术语一起,使用括号: `bug | (display +sound)` `bug | (display +sound)`
* 要匹配部分单词,请使用`*``bug find_by_*`
* 要查找包含这些符号之一的术语,请使用`\` : `argument \-last`
### Syntax search filters[](#syntax-search-filters "Permalink")
高级语法搜索还支持使用过滤器. 可用的过滤器是:
* filename:按文件名过滤. 您可以使用 glob( `*` )运算符进行模糊匹配.
* path:按路径过滤. 您可以使用 glob( `*` )运算符进行模糊匹配.
* 扩展名:按扩展名过滤文件名. 请写扩展名,不要带引号. 仅完全匹配.
要使用它们,只需将它们添加到您的查询格式`<filter_name>:<value>`没有冒号之间的空格( `:` )和值.
Examples:
* 查找包含任何名为`hello_world.rb`内容的文件: `* filename:hello_world.rb`
* 查找一个名为`hello_world`的文件,其中包含文本`whatever` : `whatever filename:hello_world`
* 在扩展名为`.rb`文件中查找文本" def create": `def create extension:rb`
* 在名为`encryption`的文件夹中的文件内查找文本`sha` : `sha path:encryption`
* 查找任何以`hello`开头的文件,其中包含`world`并带有`.js`扩展名: `world filename:hello* extension:js`
\ No newline at end of file
......@@ -78,7 +78,7 @@
### Web IDE[](#web-ide "Permalink")
使用[Web IDE](project/web_ide/index.html)编辑文件时,可以使用以下快捷方式:
使用[Web IDE](/docs/user/project/webide.md)编辑文件时,可以使用以下快捷方式:
| 快捷键 | 说明 |
| --- | --- |
......@@ -87,7 +87,7 @@
### 分支图[](#repository-graph "Permalink")
以下快捷键在查看项目[分支图](project/repository/index.html#repository-graph)页面时可用(导航至**代码> 分支图** ):
以下快捷键在查看项目[分支图](/docs/user/project/repo.md#repository-graph)页面时可用(导航至**代码> 分支图** ):
| 快捷键 | 说明 |
| --- | --- |
......@@ -100,7 +100,7 @@
### Wiki[](#wiki-pages "Permalink")
在查看[Wiki](project/wiki/index.html)时,可以使用以下快捷键:
在查看[Wiki](/docs/user/project/wiki.md)时,可以使用以下快捷键:
| 快捷键 | 说明 |
| --- | --- |
......@@ -108,7 +108,7 @@
### 搜索过滤[](#filtered-search "Permalink")
以下快捷键在使用[搜索过滤](search/index.html)时可用:
以下快捷键在使用[搜索过滤](/docs/user/search.md))时可用:
| 快捷键 | 说明 |
| --- | --- |
......@@ -117,7 +117,7 @@
## Epics[](#epics-ultimate "Permalink")
以下快捷键在查看[Epics](group/epics/index.html)时可用:
以下快捷键在查看 Epics 时可用:
| 快捷键 | 说明 |
| --- | --- |
......
......@@ -2,14 +2,14 @@
当您登录到 CODEChina 时,通常需要看一下哪些内容需要花费较多时间、开始干活或知道需要注意的是哪些,而无需理会大量的电子邮件通知。这里是您工作的地方,因此能够快速下手开展工作尤为重要。待办事项就是这样一个工具,它在一个简单的仪表板中按时间顺序列出了等待您处理的内容。
[![To Do screenshot showing a list of items to check on](/../../docs/img/todos_index.png)](img/todos_index.png)
[![To Do screenshot showing a list of items to check on](/docs/img/todos_index.png)](/docs/img/todos_index.png)
通过单击顶部导航右上角的对勾图标,可以快速访问待办事项列表. 如果计数为:
* 小于 100 的蓝色数字是待办事项的数量
* 大于或等于 100,则数字显示为 99+, 确切的数字显示在"任务列表"上
[![To Do icon](/../../docs/img/todos_icon.png)](img/todos_icon.png)
[![To Do icon](/docs/img/todos_icon.png)](/docs/img/todos_icon.png)
## 待办事项类型[](#what-triggers-a-to-do "Permalink")
......@@ -28,7 +28,7 @@
* 你是作者
* 是由您将其设置为在 pipeline 成功后自动合并的
待办事项触发器不受[通知电子邮件设置的影响](/account/email-notify)
待办事项触发器不受[通知电子邮件设置的影响](/docs/user/account/email-notify.md)
**注意:**当用户不再有权访问与待办事项相关的资源(例如 Issue,合并请求,项目或组织)时,出于安全原因,相关的待办事项将在一小时内删除。为了防止用户的权限被错误地收回导致数据丢失,删除操作会延迟处理。
......@@ -55,7 +55,7 @@
* Issue
* 合并请求
[![Adding a To Do from the issuable sidebar](/../../docs/img/todos_add_todo_sidebar.png)](img/todos_add_todo_sidebar.png)
[![Adding a To Do from the issuable sidebar](/docs/img/todos_add_todo_sidebar.png)](/docs/img/todos_add_todo_sidebar.png)
## 标记已完成[](#marking-a-to-do-as-done "Permalink")
......@@ -82,14 +82,14 @@
如果不需要做任何处理,您可以通过单击相应的**完成**按钮来手动将"待办事项"标记为已完成,它也将从您的"待办事项列表"中消失。
[![A To Do in the To-Do List](/../../docs/img/todos_todo_list_item.png)](img/todos_todo_list_item.png)
[![A To Do in the To-Do List](/docs/img/todos_todo_list_item.png)](/docs/img/todos_todo_list_item.png)
您还可以通过单击以下边栏中的" **标记为已完成**按钮将"待办事项" **标记为已完成**
* Issue
* 合并请求
[![Mark as done from the issuable sidebar](/../../docs/img/todos_mark_done_sidebar.png)](img/todos_mark_done_sidebar.png)
[![Mark as done from the issuable sidebar](/docs/img/todos_mark_done_sidebar.png)](/docs/img/todos_mark_done_sidebar.png)
您可以通过单击**全部标记为已完成**按钮将所有待办事项**标记为已完成**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册