Go Wiki: 代码审查
请务必首先熟悉官方 贡献指南 中的代码审查流程。
评审者术语
代码审查中可能会使用一些术语,您应该熟悉这些术语。
LGTM
— 看起来不错SGTM
— 听起来不错PTAL
— 请看一看s/foo/bar/
— 请将foo
替换为bar
;这是 sed 语法s/foo/bar/g
— 请将foo
替换为bar
,贯穿您的整个更改
CL 指令
R=foo
— 在 Go CL 仪表板 中分配评审者DO NOT SUBMIT
(在提交消息中) — 阻止提交;请参阅下面的“进行中”部分Updates #1234
或Fixes #1234
(在提交消息中) — 将 CL 从 GitHub 问题链接到,并在 CL 合并后选择性地关闭问题
电子邮件
代码审查中的消息通常会发送到三个地方
- 评审者(如果有)
- golang-codereviews 组
- 所有者
请不要通过电子邮件回复代码审查,因为消息 不会转发到 Gerrit。始终点击链接并在 Gerrit 中发布回复。
进行中
如果您有尚未准备好审查的更改,您可以将一个大型的 DO NOT REVIEW
作为 CL 描述的第二行,以便看到它的人知道不要再看。不要将其作为第一行,因为这样它将成为整个审查的主题,即使您已经更改了描述。
同样,如果您希望确保您的更改不会被错误地合并,您可以将 DO NOT SUBMIT
作为 CL 描述的第二行。
如果您不需要 Gerrit 的功能,但只是想备份您的工作,在多个客户端之间共享工作,或有一个暂存 UI 来检查您的更改,您可以使用常规的 git 远程。
要使用 GitHub 作为 git 远程,您可以 fork github.com/golang/go 或创建一个新的仓库。这两种方法各有优劣。Forked 仓库的第一次推送速度会更快。非 forked 仓库可以是私有的。Forked 仓库在 GitHub 系统中是关联的。因此,它们很容易被发现,并在 GitHub UI 中支持跨仓库比较;但是,这也意味着在 forked 仓库的提交消息中对问题的引用将在问题中创建对您 fork 的引用。
要添加您的 git 远程,请运行以下命令
$ git remote add fork [email protected]:yourusername/go.git
然后,您可以使用 git push fork branchname
将更改推送到“fork”远程。
Gerrit 的代码审查模型是重写单个提交,直到它正确为止。GitHub 会尝试阻止您意外覆盖您现有的分支。您可以通过强制推送来解决这个问题:git push --force fork branchname
。或者,您可以通过以下方式将您的 forked 远程设置为镜像
$ git remote add --mirror=push fork [email protected]:yourusername/go.git
然后运行 git push fork
将更新 GitHub,使其完美地镜像所有内容(所有分支,所有标签等)。这很方便,但在多个客户端上使用时要小心。您正在绕过通常的 git 安全措施,因此很容易覆盖(从而丢失)由不同客户端推送的工作。
此内容是 Go Wiki 的一部分。