仓库
仓库是您存储代码并对其进行更改的地方。您的更改通过版本控制进行跟踪。
每个项目都包含一个仓库。
创建仓库
要创建一个仓库,您可以:
添加文件到仓库
您可以将文件添加到仓库:
提交对仓库的更改
您可以提交您的更改到仓库中的一个分支。当您使用命令行时,您可以在推送之前多次提交。
-
提交消息:
提交消息标识正在更改的内容以及原因。
在极狐GitLab 中,您可以向提交消息添加关键字以执行以下操作之一:
- 触发 GitLab CI/CD 流水线: 如果项目配置了 GitLab CI/CD,则每次推送都会触发流水线,而不是每次提交。
-
跳过流水线:
将
ci skip
关键字添加到您的提交消息中,以使 GitLab CI/CD 跳过流水线。 - Cross-linking 议题和合并请求: 使用 cross-linking 来跟踪工作流程的相关部分。 如果您在提交消息中提及议题或合并请求,它们将显示在各自的主题中。
- 拣选提交: 在极狐GitLab 中,您可以从 UI 拣选提交。
- 还原提交: 还原提交 从 UI 到选定的分支。
- 签名提交: 使用 GPG 签名您的提交。
克隆仓库
您可以使用命令行克隆存储库。
或者,您可以直接克隆到代码编辑器中。
克隆并在 Apple Xcode 中打开
包含 .xcodeproj
或 .xcworkspace
目录的项目可以在 macOS 上克隆到 Xcode。
- 从 GitLab UI,转到项目的概览页面。
- 选择 克隆。
- 选择 Xcode。
该项目被克隆到您的计算机上,并提示您打开 XCode。
克隆并在 Visual Studio Code 中打开
引入于 13.10 版本。
所有项目都可以从用户界面克隆到 Visual Studio Code,但您也可以安装 GitLab Workflow VS Code 扩展,从 Visual Studio Code 克隆:
- 从 GitLab 界面:
- 进入项目概览页面。
- 选择 克隆。
- 在 HTTPS 或 SSH 方法下,选择 使用 Visual Studio Code 克隆。
-
选择一个文件夹来克隆项目。
在 Visual Studio Code 克隆您的项目后,它会打开该文件夹。
- 从 Visual Studio Code 安装扩展,使用扩展的
Git: Clone
命令。
下载仓库中的代码
您可以下载存储在仓库中的源代码。
- 在文件列表上方,选择下载图标 ()。
-
从选项中,选择要下载的文件。
-
源代码:
从您正在查看的当前分支下载源代码。
可用的扩展名:
zip
、tar
、tar.gz
和tar.bz2
。 -
目录:
下载特定目录。 仅在查看子目录时可见。
可用的扩展名:
zip
、tar
、tar.gz
和tar.bz2
。 - 产物: 从最新的 CI 作业下载产物。
-
源代码:
从您正在查看的当前分支下载源代码。
可用的扩展名:
仓库语言
对于每个仓库的默认分支,极狐GitLab 确定使用哪些编程语言。该信息显示在 项目信息 页面上。
添加新文件时,此信息最多可能需要五分钟才能更新。
添加仓库语言
并非所有文件都被检测到并列在 项目信息 页面上。文档、供应商代码和大多数标记语言被排除在外。
您可以通过覆盖默认设置来更改。
- 在仓库的根目录中,创建一个名为
.gitattributes
的文件。 -
添加一行告诉极狐GitLab 包含这种类型的文件。例如,要启用
.proto
文件,请添加以下代码:*.proto linguist-detectable=true
查看支持的数据类型列表。
此功能可能会使用过多的 CPU。 有关更多信息,请参阅故障排查部分。
支持的标记语言
如果您的文件具有以下文件扩展名之一,极狐GitLab 会在 UI 中呈现文件标记语言的内容。
标记语言 | 扩展名 |
---|---|
纯文本 | txt
|
Markdown |
mdown , mkd , mkdn , md , markdown
|
reStructuredText | rst
|
AsciiDoc |
adoc , ad , asciidoc
|
Textile | textile
|
Rdoc | rdoc
|
Org mode | org
|
creole | creole
|
MediaWiki |
wiki , mediawiki
|
README 和 index 文件
当仓库中存在 README
或 index
文件时,极狐GitLab 会呈现其内容。
这些文件可以是纯文本文件,也可以是支持的标记语言 的扩展名。
- 当
README
和index
文件都存在时,README
总是优先。 - 当多个文件名称相同但扩展名不同时,文件按字母顺序排列。任何没有扩展名的文件最后排序。
例如,
README.adoc
优先于README.md
,README.rst
优先于README
。
OpenAPI 查看器
极狐GitLab 可以呈现 OpenAPI 规范文件。文件名必须包含 openapi
或 swagger
,扩展名必须是 yaml
、yml
或 json
。下面的例子都是正确的:
openapi.yml
openapi.yaml
openapi.json
swagger.yml
swagger.yaml
swagger.json
gitlab_swagger.yml
openapi_gitlab.yml
OpenAPI.YML
openapi.Yaml
openapi.JSON
openapi.gitlab.yml
gitlab.openapi.yml
要呈现 OpenAPI 文件:
- 转到仓库中的 OpenAPI 文件。
- 在 显示源 和 编辑 按钮之间,选择 显示 OpenAPI。 找到 OpenAPI 文件后,它会替换 显示渲染后文件 按钮。
仓库大小
引入于 15.3 版本,功能标志
gitaly_revlist_for_repo_size
和gitaly_catfile_repo_size
用于替代仓库大小计算。
du -sk
命令来确定仓库的大小。极狐GitLab 可以使用 git-rev-list
(使用功能标志 gitaly_revlist_for_repo_size
启用)或 git-cat-file
(使用功能标志 gitaly_catfile_repo_size
启用)。 要在不同的计算方法之间切换,请让管理员启用或禁用这些功能标志。项目信息页面显示了仓库中所有文件的大小。大小最多每 15 分钟更新一次。文件大小包括仓库文件、产物和 LFS。
由于压缩、清理和其他因素,大小可能因实例而略有不同。
管理员可以设置仓库大小限制
仓库贡献者图
所有代码贡献者都显示在您项目的 仓库 > 贡献者 下。
该图按从贡献最多到最少的顺序显示贡献者。
仓库分支图
仓库图显示仓库网络的可视历史记录,包括分支和合并。 此图可以帮助您可视化仓库中使用的 Git 流策略。
转到您项目的 代码 > 仓库图。
仓库路径更改时会发生什么
当仓库路径更改时,系统会通过重定向处理从旧位置到新位置的转换。
- 命名空间及其下的所有内容(如项目)的 URL 被重定向到新 URL。
- 命名空间下项目的 Git 远端 URL 重定向到新的远端 URL。当您推送或拉取到已更改位置的仓库时,会显示一条警告消息以更新您的远端。自动化脚本或 Git 客户端在重命名后继续工作。
- 只要原始路径未被其他群组、用户或项目声明,重定向就可用。
故障排查
仓库语言:过度使用 CPU
为了确定仓库文件中的语言,极狐GitLab 使用 Ruby gem。 当 gem 解析文件以确定它是哪种类型时,该进程可能会使用过多的 CPU。 gem 包含一个 启发式配置文件,用于定义必须解析哪些文件扩展名。
带有 .txt
扩展名的文件和带有 gem 未定义扩展名的 XML 文件可能会占用过多的 CPU。
解决方法是指定要分配给特定文件扩展名的语言。 同样的方法还应该允许修复错误识别的文件类型。
-
确定要指定的语言。gem 包含一个已知数据类型的配置文件。 要为文本文件添加条目,例如:
Text: type: prose wrap: true aliases: - fundamental - plain text extensions: - ".txt"
-
在您的仓库根目录中添加或修改
.gitattributes
:*.txt linguist-language=Text
*.txt
文件在启发式文件中有一个条目。此示例防止解析这些文件。
includes
关键字不能遵循项目重定向。当配置为使用 includes
从重命名或移动的项目中获取配置时,流水线失败并出现语法错误。