使用git计算行更改?
有没有一种简单的方法可以让git了解我在特定日期范围内添加(或添加和删除)的行数 我在Windows、Linux和Ortoisegit(Windows)上使用git 然后,您可以对底部的--stat信息进行后期处理。基于,(+1 Seth!)使用git计算行更改?,git,tortoisegit,Git,Tortoisegit,有没有一种简单的方法可以让git了解我在特定日期范围内添加(或添加和删除)的行数 我在Windows、Linux和Ortoisegit(Windows)上使用git 然后,您可以对底部的--stat信息进行后期处理。基于,(+1 Seth!)awk将为您汇总列: % git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files?
awk
将为您汇总列:
% git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files? changed/ {
files += $1
insertions += $2
deletions += $3
print
}
END {
print "Files Changed: " files
print "Insertions: " insertions
print "Deletions: " deletions
print "Lines changed: " insertions + deletions
}'
如果有人对回购的总体统计数据感兴趣:
两张海报似乎都忽略了一点,那就是有一个
--numstat
选项,它提供了比--stat
更具机器可读性的格式@Jefromi:你为什么认为我忽略了它1个文件更改,2个插入(+),0个删除(-)在awk
中解析并不比“2 0.gitconfig”更难,并且可以保存我记录更改的文件数!还可以查看添加、删除和修改的行数。这似乎很有用,但如何在终端中调用它?不熟悉awk
@WallaceSidhrée:在或中,您可以直接通过我的答案(没有前导的%
。或者您可以将其放入${PATH}中的某个脚本中
。这可能会产生不正确的结果。stat
的摘要行可能会隐藏删除
或插入
(如果没有)。如果在该特定提交中没有插入,则git可能会显示1个文件更改,6个删除(-)
,使您的脚本将删除添加到插入变量中。可以修改awk脚本以使用匹配匹配($0,/([0-9]+)文件?更改(,([0-9]+)插入?\(\++\)?(,([0-9]+)删除?\(\-\)?/,m);文件+=m[1];插入+=m[3];删除+=m[5];
您当时的答案绝对正确!此答案中的注释表明输出在1.7.9->1.7.10补丁期间发生了更改。
% git log --stat --author $(git config --get user.email) --since="last year" --until="last month" | awk -F',' '/files? changed/ {
files += $1
insertions += $2
deletions += $3
print
}
END {
print "Files Changed: " files
print "Insertions: " insertions
print "Deletions: " deletions
print "Lines changed: " insertions + deletions
}'