git shortlog命令

git shortlog命令

git shortlog命令用于汇总git日志输出。

使用语法

git log --pretty=short | git shortlog [<options>]
git shortlog [<options>] [<revision range>] [[\--] <path>…​]

描述

适当包含在发布公告中的格式汇总git日志输出。每个提交将按作者和标题分组。

另外,“[PATCH]”将从提交描述中删除。

如果在命令行上没有传递修订版本,并且标准输入不是终端或没有当前的分支,则git shortlog将输出从标准输入读取的日志的摘要,而不引用当前存储库。

场景假设

一个开发小组有10个程序员,他们用 Git 做版本控制,某一天程序员A push了当天的几个commit之后,突然在想“我在这个项目到底一共进行过多少次commit?谁比我commit更多?多多少?谁是组里面进行最多 commit的?谁是最少的?”

Git 非常人性化地支持这样一个命令:

$ git shortlog

这个命令会返回这个 git repository 底下每个用户进行 commit 的次数,以及每次 commit 的注释。

-s 参数省略每次 commit 的注释,仅仅返回一个简单的统计。
-n 参数按照 commit 数量从多到少的顺利对用户进行排序

示例

以下是一些示例 -

$ git shortlog -s -n
 Tom Preston-Werner
 Jack Danger Canty
 Chris Van Pelt
 Mark Reid
 remi
 Mikael Lind
 Toby DiPasquale
 Aristotle Pagaltzis
 Basil Shkara
 John Reilly
 PJ Hyett
 Marc Chung
 Nick Gerakines
 Nick Quaranto
 Tom Kirchner

比如想要知道一个开源项目(例如 Graphiti )的 commit 统计

$ git shortlog -s -n
 maxsu
 your_name
 minsu
 Maxsu

上面的结果表明, maxsu 确实是这个开源项目的主要开发者。