2016-12-07 24 views
2

鑑於git存儲庫中的特定文件,我該如何去查找誰是該文件中最頻繁的提交者?查找特定文件中最頻繁的提交者

+0

你的'頻繁'是什麼意思?誰承諾比其他任何人或行更多的時代? –

+0

好問題。你可以發佈兩個? –

回答

9

您可以使用git shortlog此:

git shortlog -sn -- path/to/file 

這將打印出作者的列表的路徑,由提交計數有序和前綴。

通常,此命令用於快速總結變化,例如,生成更新日誌。使用-s時,更改摘要被抑制,僅留下作者姓名。並且與-n配對,輸出按提交計數排序。

當然,也可以使用指向目錄的路徑來查看對該路徑的提交,而不是文件路徑。如果完全離開路徑,git shortlog -sn會爲您提供整個存儲庫的統計信息。

+2

好的答案,比我的好:)但你可能需要額外的' - followlow'來檢測重命名。 –

+0

謝謝!線數如何變化? –

+0

@LeoNatan這是一個不同的問題,並且有點複雜;你可以從'git log --shortstat'解析輸出,類似於Patryk的答案。但檢查[這個問題](http://stackoverflow.com/questions/2787253/show-number-of-changed-lines-per-author-in-git)更多的想法。 – poke

1
$ git log --follow <file> | grep "Author: " | sort | uniq -c | sort 

一些解釋:

git log --follow <file> - 限制登錄到特定的文件,貫徹這個文件

grep "Author:" | sort的所有重命名 - 只需要行與作者和作者羣一起

uniq -c | sort - 對作者進行分組並重新排序,因此最常見的是在第一行

:)

1
git log --format="%cn" | sort | uniq -c | sort -nr 

獲取每個提交,組和計數的提交者名稱,按降序排序。

1

您可以根據每個用戶的提交數來縮短輸出。

$ git shortlog -sen <file/path> 

Here, 
-s for commit summary 
-e for email 
-n short by number instead of alphabetic order 

// more info 
$ git shortlog --help