[ English | 한국어 (대한민국) | Indonesia | 中文 (简体, 中国) | español (México) | English (United Kingdom) | Deutsch ]

设置和学习 GIT

注意

本节假定您已完成 账户设置 指南。

GIT

什么是 Git?

Git 是一个免费且开源的分布式版本控制系统,OpenStack 社区使用它来管理源代码和文档的更改。

Git 允许您

安装

Mac OS

  1. 访问 Git 下载页面 并点击 Mac OS X

  2. 下载的文件应该是在您的下载文件夹中的 dmg 文件。打开该 dmg 文件并按照屏幕上的说明操作。

如果您使用软件包管理器 Homebrew,请打开终端并输入

brew install git

Linux

对于 Debian、Ubuntu 或 Mint 等发行版,请打开终端并输入

sudo apt install git

对于 RedHat、Fedora 或 CentOS 等发行版,请打开终端并输入

sudo dnf install git

对于 SUSE 发行版,请打开终端并输入

sudo zypper in git

Windows

Windows Subsystem for Linux (WSL) 在 Windows 10 Anniversary Update 或更高版本(build 1607+)中可用。您可以安装和运行现代 Linux 操作系统

所有常用工具,如 bash、git 和 SSH,都可以开箱即用。

虽然 Git 下载页面 提供了 Windows 安装二进制文件,但不幸的是,大多数 OpenStack 开发工具(例如 git-review)在 Windows 环境下将无法正常工作。

配置 Git

安装 Git 后,您需要对其进行配置。打开您的终端应用程序并发出以下命令,输入您的名字和电子邮件地址。您的贡献将以这种方式标识

git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"

注意

使用账户设置期间使用的相同电子邮件地址。

学习 Git

您可以使用 Git Immersion 来完成 Git 学习教程。

作为参考,请使用 Git 参考和备忘单

提交消息

提交消息是审查者首先看到的内容,并用作 git 日志中的描述。它们提供了仓库中更改历史的描述。提交消息在补丁合并后无法修改。

格式

  • 摘要行

  • 空行

  • 正文

  • 空行

  • 页脚

注意

页脚应逐行输入,行之间没有空行。

摘要行

摘要行简要描述补丁内容。字符限制为 50 个字符。摘要行不应以句点结尾。如果更改在提交时未完成,请以 WIP 开头。

正文

正文包含正在解决的问题的解释以及为什么应该修复它,解决方案的描述,以及有关如何改进代码结构或引用其他相关补丁的额外可选信息。各行限制为 72 个字符。正文应包含与问题相关的所有重要信息,而无需假设读者了解问题的根源或可以访问外部站点。

页脚

页脚是提交消息的最后一段中的行,用于将更改链接到其他工具。

以下页脚是必需的

  • Change-Id 行是一个描述更改的唯一哈希值,该哈希值由 Git 提交钩子在您最初保存提交消息时自动生成。在根据审查反馈重新整理提交时,不应更改此值,因为它由 Gerrit 用于跟踪补丁的版本。如果您第一次编辑新的提交消息,它将不会出现,但如果您稍后 commit --amend,您将看到它。

StoryBoard 特定页脚

  • Task: 1234:更改中实现的 Storyboard 中的任务编号。当您推送补丁时,这将自动将任务更新为“审查”状态并将其分配给您。

  • Story: 1234567:正在实现的任务所属的 Storyboard 中的故事编号。这将发布一条带有补丁链接的评论到故事中。

Launchpad 特定页脚

  • Closes-Bug: #123456789:如果提交旨在完全修复并关闭引用的错误,请使用 Closes-Bug。使用错误的 Launchpad ID 作为编号;Gerrit 会自动创建指向该错误的链接。

  • Partial-Bug: #123456789:如果提交只是一个部分修复,并且需要更多的工作,请使用 Partial-Bug。使用错误的 Launchpad ID 作为编号;Gerrit 会自动创建指向该错误的链接。

  • Related-Bug: #12456789:如果提交仅与引用的错误相关,请使用 Related-Bug。使用错误的 Launchpad ID 作为编号;Gerrit 会自动创建指向该错误的链接。

  • Partial-Implements:如果更改部分实现了 Launchpad 蓝图,请使用此页脚。将蓝图名称作为 ID 使用。

  • Implements:如果更改完全实现了 Launchpad 蓝图,请使用此页脚。将蓝图名称作为 ID 使用。

以下页脚是可选的;但是,如果它们适用于补丁,则建议使用它们

  • DocImpact 页脚包含有关更改为何影响文档的评论。单独一行放置 DocImpact。使用此页脚指示文档包含在补丁中或对文档有影响。当此页脚包含在提交消息中时,Gerrit 会为受更改影响的项目创建一个错误,用于任务跟踪,或根据需要移动到 openstack-api-site。

  • APIImpact 页脚包含有关更改为何影响公共 HTTP API 的评论。单独一行放置 APIImpact。使用此页脚指示补丁影响公共 HTTP API。当此页脚包含在提交消息中时,API_Working_Group 可以使用它来帮助查找相关的审查。

  • SecurityImpact 页脚用于指示更改具有安全影响,应由 OpenStack 安全组进行审查。

  • UpgradeImpact 页脚包含有关更改为何影响升级的评论。它用于指示更改对执行连续部署或 N 到 N+1 升级的人员具有升级影响。此外,请考虑更新受影响项目的发布说明中的“升级说明”部分。

  • Depends-On:<gerrit-change-url> 页脚用于引用当前更改所依赖的更改。使用补丁的永久链接。