5

我正在寻找针对我的 git 存储库执行的命令,以发现在特定时间段内更改的代码量。

我想知道自“X”日以来更改了多少代码。我并不真正关心每个作者更改的代码百分比。

4

3 回答 3

6

您可以使用 的--stat选项git diff

例如

git diff --stat HEAD HEAD~1

会告诉您与上次提交相比发生了什么变化,但我认为最接近您的要求的是命令

git diff --shortstat HEAD HEAD~1

这将输出类似

524 files changed, 1230 insertions(+), 92280 deletions(-)

编辑

实际上,我发现这个很好的答案可以更好地解决相同的问题。

于 2013-04-03T17:32:34.953 回答
4

跟进 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参数处理。

于 2013-04-03T17:38:57.487 回答
1

作为一个不那么令人讨厌的选择:

REV=$(git rev-list -n1 --before="1 month ago" master)
git diff --shortstat $REV..master

“之前”日期当然也可以是更标准的时间表示。

于 2013-04-03T17:53:08.293 回答