查看多人协作项目
克隆 Lighthouse 项目
我们首先需要下载一个正在进行多人协作的项目。让我们下载 Google 的 Lighthouse 项目,这是一个用于对渐进式网页应用进行审计、性能度量和提供最佳实践的应用。
https://github.com/GoogleChrome/lighthouse
按 commit 作者分组
这不是一个巨大的项目,但仍有超过 1,000 个 commit 。要看到每位贡献者在此仓库中添加了多少 commit ,一个快捷的方法是使用 git shortlog
命令:
git shortlog
显示了按字母顺序排序的人名列表,以及他们对应的提交说明。如果我们只想看到每个开发者的 commit 数量,我们可以添加几个选项:用 -s
仅显示 commit 的数量(而不是每个 commit 的消息),以及用 -n
来按数量排序(而不是按作者姓名的字母顺序)。
按作者筛选
另一种显示某个作者所有 commit 的方法是使用常规的 git log
命令,包含 --author
选项来筛选所述作者的 commit 。
$ git log --author=Surma
按搜索内容筛选 commit
在讲解“按搜索内容筛选 commit”这部分之前,我认为我需要强调一下编写好的描述性提交说明的重要性。编写描述性提交说明,会使你之后能很轻松地搜索提交说明,找到你想要的东西。
另外记住,如果提交说明不足以解释 commit 的内容,则你可以在描述区域中提供关于该 commit 用途的详细说明。
我们以 commit 5966b66
为例,来说明如何在 lighthouse 项目的 commit 中包含额外详细信息:
$ git show 5966b66
提交说明为“配置由白名单集成运行的 Lighthouse (#1830)”。但除此之外还有一些文本。在提交说明下面,你还会看到看到几行有关 commit 的其他信息。此部分提供了有关为何需要此 commit 的更多信息。
那么这些详细信息为何重要呢?一方面,你将能更容易地回头查看对仓库所做的更改,其他人也更容易查看更改。另一方面是你将能根据当前说明或描述区域中的信息筛选 commit 。
我们可以使用 --grep
选项筛选 commit 。
我们再来尝试筛选提到 "bug" 一词的 commit ,使用下面任何一个命令都可以这么做:
$ git log --grep=bug
小结
git log
命令非常强大,你可以使用它来深入了解关于仓库的很多信息。而且,它在探索有关你与他人协作的仓库的信息这一方面很实用。你可以使用 git log
完成以下任务:
-
使用
git shortlog
按作者对 commit 分组$ git shortlog
-
使用
--author
选项筛选 commit$ git log --author="Richard Kalehoff"
-
使用
--grep
选项筛选 commit$ git log --grep="border radius issue in Safari"