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
  135  Tom Preston-Werner
  15  Jack Danger Canty
  10  Chris Van Pelt
  7  Mark Reid
  6  remi
  3  Mikael Lind
  3  Toby DiPasquale
  2  Aristotle Pagaltzis
  2  Basil Shkara
  2  John Reilly
  2  PJ Hyett
  1  Marc Chung
  1  Nick Gerakines
  1  Nick Quaranto
  1  Tom Kirchner

比如想要知道一個開源專案(例如 Graphiti )的 commit 統計

$ git shortlog -s -n
    16  maxsu
     5  your_name
     2  minsu
     1  Maxsu

上面的結果表明, maxsu 確實是這個開源專案的主要開發者。