有沒有簡單的方法來計算git中兩次提交之間改變的行數?我知道我可以做一個git diff
,並計算線條,但這看起來很乏味。我也想知道我該如何做到這一點,只包括我自己在linecounts中的提交。如何計算git中兩次提交之間更改的行數?
回答
你想要的git diff
的--stat
選項,或者如果你正在尋找一個腳本來分析這一點,--numstat
選項。
git diff --stat <commit-ish> <commit-ish>
--stat
產生您在合併之後看到的人類可讀輸出; --numstat
產生一個很好的表格佈局,腳本可以很容易地解釋。
我不知何故錯過了你正在尋找在同一時間多次提交 - 這是git log
的任務。 Ron DeVera談到這一點,但實際上你可以做的比他所提到的要多得多。由於git log
內部調用diff設備以打印請求的信息,因此您可以給它任何差異統計選項 - 不僅僅是--shortstat
。你可能想使用什麼是:
git log --author="Your name" --stat <commit1>..<commit2>
但你可以使用--numstat
或--shortstat
爲好。 git log
也可以選擇提交其他各種方式 - 看看documentation。您可能會對--since
(而不是指定提交範圍,僅選擇自上週以來的提交)和--no-merges
(合併提交實際上不會引入更改)以及漂亮的輸出選項(--pretty=oneline, short, medium, full...
)感興趣。
這裏是一個一行得到總的變化,而不是每次提交的git的日誌變化(如需要更改提交選擇選項 - 這是你的提交,從commit1到commit2):
git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
(你必須讓git log打印一些關於提交的標識信息;我隨意選擇了散列,然後用awk僅挑選出帶有三個字段的行,這些字段與stat信息一致)
git diff --stat commit1 commit2
編輯:你必須指定提交以及(沒有參數比較工作目錄與索引)。例如。
git diff --stat HEAD^ HEAD
到HEAD
父與HEAD
比較。
假設你想要比較abcd123(第一個提交)和wxyz789(最後一個提交)之間的所有提交,包括:
git log wxyz789^..abcd123 --oneline --shortstat --author="Mike Surname"
這給喜歡簡潔的輸出:
abcd123 Made things better
3 files changed, 14 insertions(+), 159 deletions(-)
wxyz789 Made things more betterer
26 files changed, 53 insertions(+), 58 deletions(-)
這對我來說沒有任何意義(我已經提交併驗證了--author使用git log並且沒有其他參數是正確的)。 – Mike 2010-03-27 04:46:51
這也發生在我身上。這兩個提交的順序是錯誤的,交換它們來固定它。 – 2013-01-08 01:04:17
更新了提交順序並澄清了兩個SHA代表的內容。感謝您的支持:) – 2014-03-05 06:01:39
懶惰的,git log --stat
)
也可以使用'git log --shortstat'。 – hazrpg 2015-09-03 08:27:46
我發現這個很有用,加了一個'-10'來顯示前面的十個提交。 – meetalexjohnson 2016-08-26 22:39:29
我們懶人們謝謝你! – 2017-04-05 13:04:21
git diff --shortstat
給你剛纔的線條變化,增加的號碼。
就是我在找的東西,輸出結果是'655個文件改變了,22619個插入(+),22558個刪除( - )' – Daniel 2017-01-03 12:27:01
感覺這個問題比接受的答案更好地回答了問題。 – 2017-04-07 18:48:05
另一種方式來獲得所有的更改日誌中的指定時間內
git log --author="Tri Nguyen" --oneline --shortstat --before="2017-03-20" --after="2017-03-10"
輸出:
2637cc736 Revert changed code
1 file changed, 5 insertions(+), 5 deletions(-)
ba8d29402 Fix review
2 files changed, 4 insertions(+), 11 deletions(-)
有着悠久的輸出內容,您可以導出到文件的可讀性更強
git log --author="Tri Nguyen" --oneline --shortstat --before="2017-03-20" --after="2017-03-10" > /mnt/MyChangeLog.txt
- 1. R:計算兩次之間的行數
- 2. 刪除兩次提交之間的git提交
- 3. 如何計算兩個分支之間的提交數量?
- 4. 在兩次提交之間收集所有更改的文件
- 5. 如何獲取2次提交之間的更改作者?
- 6. 計算重複行之間的更改
- 7. Vb.net如何計算兩次之間的小時數
- 8. 計算兩次之間的距離
- 9. 計算兩次python之間的差異
- 10. 如何獲取版本樹中兩次提交之間的所有提交?
- 11. 計算兩次函數之間的時間間隔呼叫
- 12. WebStorm和Git:如何找到兩個提交之間的差異?
- 13. 如何計算日期間隔中兩行之間的差異?
- 14. 移動git的分支之間的未提交更改
- 15. 如何在git中提交之前跟蹤更改
- 16. Git,添加更改提交,添加和提交標記之間的區別
- 17. 使用時間計算兩次之間的中位時間
- 18. 如何計算Impala中兩個時間戳之間的秒數?
- 19. 如何恢復從git提交更改?
- 20. 如何計算兩條線之間的交點
- 21. 如何計算兩個以上HashSets之間的交集?
- 22. 如何計算excel中行之間交互的獨特組合?
- 23. 如何計算兩次之間的差異
- 24. 如何計算影響給定子樹的git提交數量?
- 25. 如何計算兩個城市之間的旅行時間?
- 26. Git:提交部分更改
- 27. 更改Git提交信息
- 28. 兩次計算之間的MySQL時間間隔
- 29. 如何在eclipse中提交之後更改提交CVS註釋?
- 30. 更改Netbeans中的Git提交者
有沒有什麼辦法可以包含我自己的提交? – Mike 2010-03-27 04:45:45
@Mike:編輯於! – Cascabel 2010-03-27 04:51:39
這不回答有關「更改的行」的原始問題。一行更改計算爲插入行和刪除行。計算更改的行數需要比此處所述更多的工作。 – 2012-01-26 09:52:21