GIT - 确定每小时写入的#行代码(已提交和未提交)

Nic*_*son 16 git

我想绘制一天中每小时写的新代码行数.

我知道git diff,git log,它们非常强大,可用于确定提交给分支的总行数.--since ="7am"选项也很棒.

我正在使用的一些git命令是:

总行数

git log --numstat --pretty="%H" master | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
Run Code Online (Sandbox Code Playgroud)

与master相比,devel分支中的#行更多

git log --numstat --pretty="%H" master..devel | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
Run Code Online (Sandbox Code Playgroud)

#行自一天的时间

git log --since="7am" --format=format: --numstat | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d, -%d\n", plus, minus)}'
Run Code Online (Sandbox Code Playgroud)

#行目前未提交

git diff --stat | tail -1 | awk '{print $4}'
Run Code Online (Sandbox Code Playgroud)

我一直在苦苦挣扎,想方设法跟踪当前回购中所有分支机构在过去一小时内写入的新行数,包括未提交的更改.

这可能更像是一个数学问题.

问题:

  • 如何确定所有分支在过去一小时内写入的确切行数,包括未提交的更改.

陷阱/场景:

  • +200在晚上7点未提交,是200行新写的.+250在晚上8点未提交,过去一小时内只写了50行.
  • +200在晚上7点未提交,是200行新写的.晚上8点,我们提交了100行,然后写了50多行.现在+150显示为未提交,但我们需要确定在过去一小时内只写了50行.协调已提交和未提交的统计信息.
  • +200在晚上7点未提交.晚上7:30,我们再写500条新线并提交.晚上8点,我们再写100条新线,因此显示+300未提交.我们应该在最后一小时写完600条新线.

Atr*_*opo 2

有一个工具gitstats可以按Lines of Code日期显示。也许你可以稍微调整一下代码(用 python 编写),让他生成每小时的统计数据。