我正在寻找针对我的 git 存储库执行的命令,以发现在特定时间段内更改的代码量。
我想知道自“X”日以来更改了多少代码。我并不真正关心每个作者更改的代码百分比。
您可以使用 的--stat
选项git diff
。
例如
git diff --stat HEAD HEAD~1
会告诉您与上次提交相比发生了什么变化,但我认为最接近您的要求的是命令
git diff --shortstat HEAD HEAD~1
这将输出类似
524 files changed, 1230 insertions(+), 92280 deletions(-)
编辑
实际上,我发现这个很好的答案可以更好地解决相同的问题。
跟进 Gabriele 找到的出色答案,您需要的确切命令是:
git log --since=1/1/2013 --numstat --pretty="%H" | awk '
NF==3 {plus+=$1; minus+=$2;}
END {printf("+%d, -%d\n", plus, minus)}'
(是的,您可以将其粘贴到单行上,但这样的答案更具可读性)
关键区别在于在一定时间内的要求,由--since
参数处理。
作为一个不那么令人讨厌的选择:
REV=$(git rev-list -n1 --before="1 month ago" master)
git diff --shortstat $REV..master
“之前”日期当然也可以是更标准的时间表示。