我想绘制一天中每小时编写的新代码行数的图表。
我知道 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)}'
与 master 相比,devel 分支中增加了 # 行
git log --numstat --pretty="%H" master..devel | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'
# 行从一天中的某个时间开始
git log --since="7am" --format=format: --numstat | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d, -%d\n", plus, minus)}'
# 行当前未提交
git diff --stat | tail -1 | awk '{print $4}'
虽然我一直在努力想出一种方法来跟踪过去一小时内写入的新行数,包括未提交的更改,跨当前存储库中的所有分支。
这可能更像是一道数学题。
问题:
- 如何确定过去一小时内所有分支中写入的确切行数,包括未提交的更改。
陷阱/场景:
- +200 晚上 7 点未提交是写入 200 行新行。 +250 未提交在晚上 8 点是过去一小时内仅写入的 50 行新行。
- +200 晚上 7 点未提交是写入 200 行新行。晚上 8 点,我们提交了 100 行,然后又写了 50 行。现在 +150 显示为未提交,但我们需要确定在过去一小时内只写入了 50 行新行。协调已提交和未提交的统计数据。
- +200 晚上 7 点未提交。在晚上 7:30,我们写了 500 行额外的新行并提交它们。在晚上 8 点,我们又写了 100 行新行,因此显示 +300 为未提交。我们应该在过去一小时内写完 600 行新内容。
最佳答案
有一个工具gitstats可以按日期为您提供 Lines of Code
。
也许您可以稍微调整一下代码(用 Python 编写),让他生成每小时的统计数据。
关于GIT - 确定每小时编写的 # 行代码(已提交和未提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775496/