Go Wiki:提交信息
提交信息,也称为 CL(变更列表)描述,应根据https://golang.ac.cn/doc/contribute#commit_messages进行格式化。例如,
net/http: handle foo when bar
[longer description here in the body]
Fixes #12345
值得注意的是,对于主题(描述的第一行)
- 受更改影响的包名称位于冒号之前
- 冒号后面的部分使用动词时态 + 短语来完成“此更改修改 Go 以 _________”中的空白
- 冒号后的动词小写
- 没有尾随句点
- 应尽可能简短(许多 git 查看工具更喜欢 ~76 个字符以下,尽管 Go 对此并不严格)。
对于主体(描述的其余部分)
- 文本应换行到 ~76 个字符(主要是为了安抚 git 查看工具),除非您确实需要更长的行(例如 ASCII 艺术、表格或长链接)。
- Fixes 行在主体之后,两个之间用空换行符分隔。(可以使用尾随句点,例如
Fixes #12345.
,但不是必需的)。 - 提交信息中**没有** Markdown。
- 我们**不**使用
Signed-off-by
行。不要添加它们。我们的 Gerrit 服务器和 GitHub 机器人会强制执行 CLA 合规性。 - 引用 CL 时,优先使用“CL nnn”或使用 go.dev/cl/nnn 短链接而不是直接的 Gerrit URL 或 git 哈希,因为这更具前瞻性。
- 在存储库之间移动代码时,请包含它从/到哪个存储库移动的 CL、存储库名称和 git 哈希,以便于跟踪历史记录/追溯。
请不要使用 GitHub 支持的其他别名,例如 Close
或 Resolves
,而不是 Fixes
。
要将提交链接到问题而不将其标记为已修复(例如,如果提交正在努力修复但尚未完全修复),GitHub 仅要求在提交消息中提及该问题编号。按照惯例,Go 提交在消息底部使用 For
提及此问题,即使问题编号也已在提交消息正文中提及,也可能在预期 Fixes
的位置使用 For
。
例如
Refactor func Foo.
This will make the handling of <corner case>
shorter and easier to test.
For #12345
在其他 Git 项目中,通常使用 Updates
而不是 For
,这也是可以接受的,即使它没有意义(提交不会更新问题)。更精确的措辞也很好。在代码审查中不要过于吹毛求疵:不值得要求人们从 Updates
或其他内容更改为 For
,反之亦然。
回退
您可以使用 Gerrit 的 Revert
按钮回滚更改。Gerrit 将为您生成一个描述。编辑描述以添加正在回滚的 Gerrit CL 编号,放在 Git 修订版本号旁边或代替它。
不要使用 Gerrit UI 创建回退的回退,因为这会立即通知人们。而是将其作为新的更改发送邮件,并在描述中说明它是 CL NNNNNN 的前移,该 CL 由 CL NNNNNN 回滚。
其他存储库
对于非“go”存储库(“crypto”、“tools”、“net”等),主题仍然是包的名称,但您需要使用 GitHub org/repo 语法完全限定问题编号
cipher/rot13: add new super secure cipher
Fixes golang/go#1234
值得注意的是,第一行主题**不应**包含 x/crypto/
前缀。我们仅对问题跟踪器执行此操作。
非规范性参考
GitHub 拉取请求
如果您使用 GitHub 拉取请求,则 GerritBot 将根据您的 PR 的标题和描述构建您的提交消息。请参阅GerritBot 如何确定最终的提交消息?
如果有人要求您修改提交消息,则需要修改您的 PR。
此内容是 Go Wiki 的一部分。