我發現了很多問題上有多少行添加和刪除在給定犯......很多答案也一樣,最好的一個,在我看來:https://gist.github.com/KOGI/8700277使用git log獲取代碼行?
但是沒有人有興趣在文件的總行數在給定點 - 提交。 這是可能的還是我看錯了方式?
理想我會期望:對文件X添加
- 行數
- 數量上的文件X
- 文件X的線總數
我刪除線需要這些信息來獲得一些指標,並對產品隨時間變化的方式進行統計分析。
謝謝!
我發現了很多問題上有多少行添加和刪除在給定犯......很多答案也一樣,最好的一個,在我看來:https://gist.github.com/KOGI/8700277使用git log獲取代碼行?
但是沒有人有興趣在文件的總行數在給定點 - 提交。 這是可能的還是我看錯了方式?
理想我會期望:對文件X添加
我刪除線需要這些信息來獲得一些指標,並對產品隨時間變化的方式進行統計分析。
謝謝!
如果你在Linux上或者安裝了Cygwin,你可以運行git checkout myfile
,然後運行wc -l myfile
。
這個想法是一次獲取所有信息,而不必爲每一次提交簽出。雖然謝謝! – Sokratis
進行統計分析,你可以看看下面的步驟 -
還可以使用Git日誌和一些shell-fu
:
git log --shortstat --author "Aviv Ben-Yosef" --since "2 weeks ago" --until "1 week ago"
| grep "files\? changed"
| awk '{files+=$1; inserted+=$4; deleted+=$6} END
{print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}'
說明:git log --shortstat
顯示每個短統計數字提交,其中,除其他事項外顯示更改的文件數量,插入和刪除的行數。然後,我們可以針對特定的提交者(--author "Your Name"
)和時間範圍(--since "2 weeks ago" --until "1 week ago"
)對其進行過濾。
現在,爲了實際總結統計數據而不是看到每次提交的條目,我們做了一些shell腳本來完成它。首先,我們使用grep來過濾只有差異的行。這些線路是這樣的:
8 files changed, 169 insertions(+), 81 deletions(-)
或本:
1 file changed, 4 insertions(+), 4 deletions(-)
然後,我們總結這些用awk:每行,我們添加的文件更改(第1個字),插線(第4個字)和刪除行(第6個字),然後在總結完成後打印出來。
以下命令的輸出應該是相當容易發送到腳本加起來的總數:
git log --author="<authorname>" --oneline --shortstat
這給統計所有提交對當前HEAD。如果你想在其他分支添加統計數據,你必須提供他們作爲參數git log
。
爲了傳遞給腳本,甚至可以使用空的日誌格式刪除「oneline」格式,並且如JakubNarębski所述,--numstat
是另一種選擇。它生成每個文件而不是每行統計信息,但更容易解析。
git log --author="<authorname>" --pretty=tformat: --numstat
我們有一個備用太 -
可以使用Gitstats生成統計數據。它有一個「作者」部分,其中包括前20位作者添加/刪除的行數(排名前20位)。
這仍然不回答獲得每個文件的總行數的問題,或者它? – Sokratis
它的確如此。它在這裏可用:https://gist.github.com/pstadler/4722416 – CloudFreezer
從我的理解提供:提交的數量,添加的行數和刪除的行數。如果我錯了,請告訴我它究竟在哪裏指定了單個文件的總行數? – Sokratis
我不知道我理解的問題。你能舉一個簡單的例子來說明你想要得到的結果嗎? – Mureinik
'GIT中登錄--oneline --numstat -1', 48 25 450富/ bar.py, 其中48行添加,25行除去和文件 –
Sokratis
450條總線I假設這是用於將數據單一提交? – Mureinik