【问题标题】:Git: How to measure the amount of code changed in a period of time? [duplicate]Git:如何衡量一段时间内更改的代码量? [复制]
【发布时间】:2013-03-25 12:22:04
【问题描述】:

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

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

【问题讨论】:

  • 你能定义你的指标吗? “多少”是什么意思?地点?
  • 代码行数将是一个很好的指标。
  • 几乎 - 不过需要调整才能解决这个问题

标签: git


【解决方案1】:

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

例如

git diff --stat HEAD HEAD~1

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

git diff --shortstat HEAD HEAD~1

会输出类似的东西

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

编辑

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

【讨论】:

  • 这里只输出增删行数,但也可以修改行数。修改意味着,在 old commitThis is me 行更改为 this is me 在新提交中。有没有办法让提交之间的回购中修改的行数
【解决方案2】:

根据 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 参数处理。

【讨论】:

  • 日期如果使用大于 12 的天数或月数部分来说明格式,会更有用。
  • 公平点。作为参考,使用的格式是DD/MM/YYYYYYYY-MM-DD也可以。
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多