Gerrit - 一款 Git Code Review 工具

说来好玩,公司内部虽然提供了 GitHub Enterprise,Stash 这两款仓库管理服务,我平时最多使用的还是 Gerrit。这款 Git 工具很是好玩,基于 Git Hooks 实现了一个 Magic Branch,发起 Pull Request 的形式是 git push origin HEAD:ref/for/master。我本地的 Alias 是 git review

它会在每个 Git Commit Log 中带上一个 Change-Id: 182cba1f-5999-42e4-b514-a94f8a77419f 一样的东西,用来把 Git Commit 和 Gerrit Code Change 绑定起来,这样下次 git review 的时候就不会创建新的变更,而是直接推上去。

相应的,它崇尚 git commit --amend, 我们基本上每个 code change 就是一个 commit。提交历史非常干净,总是基于 HEAD rebase 最新的 commit。

它也提供了基于事件的 Webhook,例如代码更新后可以触发 jenkins 构建代码等等。

代码 Review 的时候是强制要求有人标记 +1, +2 这样的分数。另外,所有评论不是一次性发送,而是攒一堆后聚合发送。

我最喜欢的还有它的 Search 功能,例如查询我自某个时间点后写的代码: owner:self and since:2018-02-05,即可列出一个 code changes 列表。

因为我不是 UI 控,从功能上,我觉得它已经解决了大部分 Code review 需要解决的问题,是个非常符合 Unix 哲学的软件,简单,专一,可组合,强大。

附上链接:https://www.gerritcodereview.com/