课程 1
在本课程中,你将解决最小的问题 - 只修改一个字符的文本。为此,我们需要学习:
- 如何搭建 GitLab 开发环境。
- 如何浏览 GitLab 代码库。
- 如何在 GitLab 项目中创建合并请求。
学习完这三点后,GitLab 团队成员将进行现场编码演示。 在演示中,他们会通过完成一个小型问题来应用所学知识,这样你就可以自己完成一个问题。
在 这里 “Linked items” 部分 有一个与我们即将现场编码的问题非常相似的问题列表,现在评论其中一个问题来分配给你,这样你就可以跟着练习。
什么是 GDK?
GDK(GitLab 开发套件)是 GitLab 的本地实例,允许开发者在自己的计算机上运行和测试 GitLab。 与仅前端的应用程序不同,GDK 运行整个 GitLab 应用程序,包括后端服务、API 和本地数据库。 这使得开发者可以进行更改、实时测试并验证他们的修改。
使用 GDK 的提示:
- 故障排除文档:当遇到 GDK 问题时,请参考 GDK 仓库 中的故障排除文档。 这些资源提供了有用的命令和提示,帮助解决常见问题。
- 使用 Rails 控制台:Rails 控制台是与本地 GitLab 实例交互的重要工具。
你可以通过运行
gdk rails c来访问它,并用于启用或禁用功能标志、执行后端操作等。 - 保持更新:通过运行
gdk update定期更新你的 GDK。 此命令获取 GitLab 项目的最新分支,以及 GDK 及其依赖项的最新分支。 保持 GDK 更新有助于确保你使用的是最新版本的 GitLab,并确保你拥有最新的错误修复。
请记住,如果你需要进一步的帮助或有具体问题,可以通过我们的 Discord 或 其他可用的支持渠道 联系 GitLab 社区。
在本地安装和使用 GDK
有关最新的安装说明,请参考 GitLab 开发套件文档。
以下是步骤摘要:
- 前置条件:
- 安装:
-
选择一个目录来安装 GitLab 开发套件(GDK)。
-
打开终端并进入所选目录。
-
从终端下载并运行安装脚本:
curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/main/support/install" | bash -
只运行来自可信源的脚本以确保安全。
-
安装过程可能需要 20 分钟或更长时间。
-
- 选择仓库:
- 不要克隆主 GitLab 仓库,而是使用为更广泛的社区成员推荐社区分叉。
- 按照提供的说明安装社区分叉。
- GDK 结构:
- 安装后,会创建 GDK 目录。
- 在 GDK 目录中,你会找到 GitLab 项目文件夹。
- 使用 GDK:
- GDK 提供了许多命令,你可以使用这些命令与你的安装进行交互。要运行这些命令,你必须位于 GDK 或 GitLab 文件夹中。
- 要启动 GDK,在终端中运行命令
gdk start。 - 你可以通过在终端中运行
gdk help来探索可用的命令和选项。
如果你有任何进一步的问题或问题,请查阅文档或寻求社区支持。
使用 Gitpod 而不是在本地运行 GDK
Gitpod 是一项服务,允许你在 Gitpod 服务器上运行虚拟机,特别是 GitLab 开发套件(GDK),而不是在你的机器上运行它。 它提供了一个基于 Web 的集成开发环境(IDE),你可以在其中编辑代码并看到 GDK 的实际运行。 Gitpod 对于快速启动和运行 GDK 环境、在不本地安装 GDK 的情况下进行小型合并请求,或在资源可能不足的机器上运行 GDK 都很有用。
要使用 Gitpod:
- 申请 GitLab 社区分叉的访问权限。 或者,你可以创建自己的公共分叉,但会错过 社区分叉的好处。
- 访问 GitLab 社区分叉网站,选择 编辑,然后选择 Gitpod。
- 配置你的设置,例如编辑器(VS Code 桌面版或浏览器)和上下文(通常是
main或master分支)。 - 选择 打开 来创建你的 Gitpod 工作区。此过程可能需要长达 20 分钟。GitLab 开发套件(GDK)将安装在 Gitpod 工作区中。此安装比下载和完整安装本地 GDK 更快。
创建工作区后,你会在浏览器中看到你选择的 IDE 正在运行。如果需要,你也可以将它连接到你的桌面 IDE。 就像你本地使用 VS Code 一样使用 Gitpod。创建分支,进行代码更改,提交它们,然后将它们推送到社区分叉。
其他提示:
- 定期推送你的代码,以避免工作区超时。空闲的工作区最终会被销毁。
- 如有需要,自定义你的 Gitpod 工作区设置,例如让你的 GitLab 前端实例公开可用。
- 如果用完分钟数,请在 Discord 服务器上联系支持团队。
- 像在本地运行一样,在 Gitpod 工作区中使用
gdk start和gdk status等命令来解决问题。
通过遵循这些步骤,你可以利用 Gitpod 高效地使用 GitLab 开发套件进行开发,而无需本地安装。
浏览 GitLab 代码库
了解如何浏览 GitLab 代码库对贡献者来说至关重要。 浏览代码库和定位特定文件可能具有挑战性,但对于有效进行更改和解决问题至关重要。 在这里,我们将探索一个逐步查找文件以及在 GitLab 中查找它们渲染位置的流程。
如果你已经知道要处理的文件,现在想找到它在哪里被渲染:
- 首先收集线索以了解文件的目的。查找文件本身中的相关信息,例如可能指示其上下文的关键词或特定内容。
- 你还可以检查文件路径(或文件夹结构)以深入了解文件可能在何处被渲染。 GitLab 中的许多路由与文件夹结构非常相似。
- 如果你能确定此组件使用在哪个功能(或其中一个功能)中,然后可以利用 GitLab 用户文档来了解如何转到该功能页面。
- 遵循组件层次结构,对文件名进行全局搜索以识别渲染该组件的父组件。 继续遵循组件层次结构,追溯到你在 GitLab 用户文档中可以识别或搜索的功能。
- 你可以使用带有 GitLens 等扩展的
git blame来查找最近修改此文件的 MR。 大多数 MR 都有一个"如何验证"部分,你可以遵循它,如果 MR 没有此部分,请查找之前的更改,直到找到包含验证步骤的更改。
如果你知道需要修复哪个页面并想找到文件路径,这里有一些你可以尝试的方法:
- 查找独特且不包含变量的内容,这样你就可以搜索翻译变量。
- 尝试使用 Vue Dev Tools 来查找组件名称。
- 在组件的 HTML 中查找唯一标识符,如
data-testid、id或看起来独特的 CSS 类,然后在代码库中全局搜索这些标识字符串。
编写一个好的合并请求
编写合并请求时,有一些重要事项需要注意:
- 你的 MR 将成为 GitLab 项目文档的永久部分。 它将来可能被用来帮助人们理解为什么某些代码以这种方式工作,以及为什么不使用替代解决方案。
- 至少有 2 名其他工程师将审查你的代码。为了效率(就像你编写的代码本身一样),最好花更多时间让你的 MR 正确,这样其他人阅读起来更快更容易。
- 你在 GitLab 上创建的 MR 对公众可见。这意味着你可以在求职时将你特别满意的 MR 链接添加到你的作品集页面。
- 由于 MR 是技术文档,你应该尝试采用技术写作风格。 如果你不了解这是什么,这里有一门来自 Google 关于技术写作 的强烈推荐的短期课程。 如果你也在为 GitLab 文档做贡献,这里有一门 GitLab 提供的技术写作基础课程。
现场编码
现在轮到你完成你的第一个 MR 了,这里 “Linked items” 部分 有一个与我们刚刚完成的问题非常相似的问题列表需要完成。感谢你的贡献!(如果没有剩余的问题,请在 Discord 或 其他可用的支持渠道 上告诉我们,我们会为你找到更多问题)