簡體   English   中英

如何匯總提交之間的代碼更改

[英]How to aggregate code changes between commits

我想查看類似匯總的git log --shortstat --oneline

代替以下內容,

2fd8b62 quote sending successfully
 5 files changed, 26 insertions(+), 40 deletions(-)
5bc977e Hackedup old (redundant) code so that project compiles
 14 files changed, 90 insertions(+), 80 deletions(-)

我想要類似的東西

 19 files changed, 116 insertions, 120 deletions.

我知道這將包含很多冗余數據(因為文件更改可能很常見,等等),但是我想跟蹤一天(例如)或任何時間段內完成的工作。

我想不出一種簡單的方法來解析由...生成的輸出

git log --shortstat --oneline commit1...commit2

要找到總的變化,我可以做

git diff --shortstat --oneline commit1...commit2

但是我不要 我認為每次提交都是有效的更改,即使在以后的提交中部分撤消了該更改。

該要點給出了可能的解決方案:

git log --shortstat  | grep "files changed" | gawk '{files+=$1; inserted+=$4; deleted+=$6} END {print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}'

在多行中,為了提高可讀性:

git log --shortstat  | grep "files changed" | \
gawk '{files+=$1; inserted+=$4; deleted+=$6} END \ 
{print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}'

我剛剛在git repo上嘗試了10天的提交(即使在Windows上也可以使用):

c:\prgs\vonc\git\git>
git log --oneline --shortstat --since="10 days ago" | grep "files changed" | gawk '{files+=$1; inserted+=$4; deleted+=$6} END {print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}'
files changed 47 lines inserted: 397 lines deleted: 30

使用相同的技術( 使用gawk ),您可以聚合其他數據,例如每個作者的提交次數:

git log --pretty=format:%an | gawk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'| gsort -r

git log --pretty=format:%an | \
gawk '{ ++c[$0]; } END \
{ for(cc in c) printf "%5d %s\n",c[cc],cc; }'| gsort

同樣,在git repo上,在Windows上,它確實可以工作:

c:\prgs\vonc\git\git>
git log --pretty=format:%an --since="10 days ago" | gawk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'| gsort
   23 Junio C Hamano
     8 Jeff King
     3 Johannes Schindelin

請注意,這有點過大,因為它包括合並提交。
更簡單的是

c:\prgs\vonc\git\git>
git shortlog -sn --no-merges --since="10 days ago"
     8  Jeff King
     6  Junio C Hamano
     3  Johannes Schindelin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM