Go Wiki: 代码审查

请务必首先熟悉官方 贡献指南 中的代码审查流程。

评审者术语

代码审查中可能会使用一些术语,您应该熟悉这些术语。

CL 指令

电子邮件

代码审查中的消息通常会发送到三个地方

请不要通过电子邮件回复代码审查,因为消息 不会转发到 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 的一部分。