针对项目的每一次Pull Request就相当于一次代码评审,评审以讨论的形式显示在Pull Request中。
在Pull Request中还能够看到对应的提交(一个或多个),并可以直接针对提交进行代码评注。对于采用集中式协同的项目,即使较少使用 Pull Request,也同样可以使用代码评注。代码评注会触发通知邮件给项目的开发者。
代码评注有两种形式,一种是针对整个提交的评注,另外一种是对代码进行逐行评注。
## 4.4.1\. 提交评注
查看项目的提交历史,从中选择一个提交,如图4-37所示。
[![../images/commit-history.png](http://www.worldhello.net/gotgithub/images/commit-history.png)](https://box.kancloud.cn/2015-07-09_559de44b713f9.png)
图4-37:helloworld项目提交历史
如图4-38是查看提交的界面。除了提交说明、提交者信息之外,还显示提交所修改的文件和改动差异。在查看提交页面的最下方显示一个提交评注对话框,可以在其中写下评注。评注可以使用 Markdown 语法。
[![../images/commit-note.png](http://www.worldhello.net/gotgithub/images/commit-note.png)](https://box.kancloud.cn/2015-07-09_559de44f87839.png)
图4-38:添加提交评注
添加评注后,所评注的提交的作者会收到通知邮件,提醒针对自己的提交有了新的评论。通知邮件如图4-39所示。
[![../images/commit-note-email-notify.png](http://www.worldhello.net/gotgithub/images/commit-note-email-notify.png)](https://box.kancloud.cn/2015-07-09_559de455894a5.png)
图4-39:提交评注的通知邮件
通过Web界面可以看到添加在提交下方的评注,并可以撰写新的评注展开讨论。评注者本人或提交的作者还可以编辑甚至删除评注。如图4-40所示。
[![../images/commit-note-admin.png](http://www.worldhello.net/gotgithub/images/commit-note-admin.png)](https://box.kancloud.cn/2015-07-09_559de45741733.png)
图4-40:提交评注
GitHub还支持Git自身提供的评注功能[[1]](http://www.kernel.org/pub/software/scm/git/docs/git-notes.html),如图4-41所示的是提交[http://git.io/git-notes](http://git.io/git-notes)(即网址 [https://github.com/ossxp-com/gitdemo-commit-tree/commit/e80aa74](https://github.com/ossxp-com/gitdemo-commit-tree/commit/e80aa74))的评注,这个评注并非通过GitHub添加的,而是由git-note命令提交的评注。这种评注针对一个特定提交只能有一个,GitHub只能显示不能编辑和删除。关于如何通过命令行查看git-note格式的评注,参见《Git权威指南》第570页“41.5 Git评注”。
[![../images/commit-note-by-git-note.png](http://www.worldhello.net/gotgithub/images/commit-note-by-git-note.png)](https://box.kancloud.cn/2015-07-09_559de45d50e02.png)
图4-41:git-note评注
## 4.4.2\. 逐行评注
还是以gotgithub/helloworld版本库中的提交为例,看一下GitHub支持的逐行评注功能,即针对提交中的任意一行添加评注。浏览提交,如图4-42所示,当鼠标置于任意一行代码时,在该行代码的左侧会显示一个添加注释的图标。
[![../images/commit-line-note-btn.png](http://www.worldhello.net/gotgithub/images/commit-line-note-btn.png)](https://box.kancloud.cn/2015-07-09_559de45e0e1a7.png)
图4-42:添加逐行评注按钮
点击该图标(用于添加逐行评注的图标),会显示如图4-43所示的添加逐行评注对话框。该评注对话框出现在两行代码之间,在其中写下评注。
[![../images/commit-line-note-form.png](http://www.worldhello.net/gotgithub/images/commit-line-note-form.png)](https://box.kancloud.cn/2015-07-09_559de45f090b9.png)
图4-43:添加逐行评注
添加评注后,项目的开发人员同样会收到邮件通知。针对同一行代码的多次评论按时间顺序依次显示,图4-44展示了多个行间评注,其中一个评注还使用 Markdown 语法嵌入了一个图片。
[![../images/commit-line-note.png](http://www.worldhello.net/gotgithub/images/commit-line-note.png)](https://box.kancloud.cn/2015-07-09_559de46019001.png)
图4-44:逐行评注和提交评注
更有意思的评注可以围观MrMEEE/bumblebee项目的一个bug修正提交(被戏称一个空格引发的惨案)。地址: [http://git.io/giant-bug](http://git.io/giant-bug)(即网址 [https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6](https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6))。
- 前言
- 1. 探索GitHub
- 1.1. 什么是GitHub
- 1.2. GitHub亮点
- 1.3. 探索GitHub
- 2. 加入GitHub
- 2.1. 创建GitHub账号
- 2.2. 浏览托管项目
- 2.3. 社交网络
- 3. 项目托管
- 3.1. 创建新项目
- 3.2. 操作版本库
- 3.3. 公钥认证管理
- 3.4. 版本库钩子扩展
- 3.5. 建立主页
- 4. 工作协同
- 4.1. Fork + Pull模式
- 4.2. 共享版本库
- 4.3. 组织和团队
- 4.4. 代码评注
- 4.5. 缺陷跟踪
- 4.6. 维基
- 5. 付费服务
- 5.1. GitHub收费方案
- 5.2. GitHub企业版
- 6. GitHub副产品
- 6.1. GitHub:Gist
- 6.2. 其他版本控制工具支持
- 6.3. 客户端工具
- 6.4. 其他
- 7. 附录:轻量级标记语言
- 贡献者列表