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

标签 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)}'

与 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/

相关文章:

git - 为什么我在 git bash (msysgit) 和 git 在 cygwin 中得到不同的结果?

git - 以编程方式获取用于 git push 的远程

windows - 无法启动 Git Bash

git - 有没有办法将旧提交 'soft revert'?

git - GitLab 是否允许 wiki merge 请求?

bash - 如何在 Powershell(vs bash)中正确生成和应用 git 补丁?

git - git如何正确使用gettext?

git - 如何删除 merge 提交

java - 应用程序品牌 reshape - 何时应采用分支策略?

git - 克隆私有(private)的 GitHub 存储库,作为 GitHub 应用程序进行身份验证