2012-09-07 29 views
3

Git的日誌統計我願做我的git的日誌一些統計得到的東西,如:使用正則表達式

10 Daniel Schmidt 
5 Peter 
1 Klaus 

第一列是提交的次數,第二個commiter。 我已經得到儘可能的:

git log --raw | 
    grep "^Author: " | 
    sort | 
    uniq -c | 
    sort -nr | 
    less -FXRS 

有趣的部分是

grep "^Author: " 

,我想用一個漂亮的正則表達式來修改排除郵件ADRESS。 與Rubular這樣的http://rubular.com/r/mEzP2hFjGb工作,但如果我插入它的grep(或在一個管道其他人)它不會得到我正確的輸出。

Sidequestion:有沒有可能讓計數和作者分隔別的東西然後留在這個管道命令風格的空白?我想有一個更好的分隔符後兩列之間(也許一些顏色^^)

非常感謝您的幫助!

+0

你管任何特別的原因'log'改爲'grep'而不是使用'git shortlog -n -s'? – Christopher

回答

5

Google git-extras。它有一個git summary這樣做。

0

你可以得到PCRE的全功率與一個Perl一行代碼(這應與Rebular您的實驗):

perl -ane 'print if /^Author: /' 

這種模式在必要時就延長。

要重新格式化您可以使用awk(如awk '{printf "%5d\t%s", $1, $2}'

1

git shortlog -n -s讓你相同的數據。在git倉庫,例如(管道輸送到頭部,以獲得更高的數字):

$ git shortlog -n -s | head -4 
11129 Junio C Hamano 
    1395 Shawn O. Pearce 
    1103 Linus Torvalds 
    896 Jeff King 

爲了得到一個不同的分隔符,您可以將其管awk

$ git shortlog -n -s | awk 'BEGIN{OFS="|";} { $1=$1; print $0 }' | head -4 
11129|Junio|C|Hamano 
    1395|Shawn|O.|Pearce 
    1103|Linus|Torvalds 
    896|Jeff|King