小编典典

如何计算 Git 中两次提交之间更改的行数?

all

有没有简单的方法来计算 Git 中两次提交之间更改的行数?

我知道我可以做一个git diff, 并计算行数,但这似乎很乏味。我也想知道我怎么能做到这一点,包括我自己在行数中的提交。


阅读 124

收藏
2022-02-28

共1个答案

小编典典

您想要 的--stat选项git diff,或者如果您希望在脚本中解析它,--numstat选项。

git diff --stat <commit-ish> <commit-ish>

--stat生成您在合并后习惯看到的人类可读的输出;--numstat生成脚本可以轻松解释的漂亮表格布局。

我不知何故错过了您希望同时在多个提交上执行此操作 - 这是git log. Ron DeVera
谈到了这一点,但实际上你可以做的比他提到的要多得多。由于git log内部调用 diff 机器以打印请求的信息,因此您可以为其提供任何 diff
stat 选项 - 而不仅仅是--shortstat. 您可能想要使用的是:

git log --author="Your name" --stat <commit1>..<commit2>

但你也可以使用--numstator --shortstatgit log还可以通过其他多种方式选择提交 -
查看文档。您可能对--since(而不是指定提交范围,只需选择自上周以来的提交)和--no- merges(合并提交实际上不会引入更改)以及漂亮的输出选项(--pretty=oneline, short, medium, full...)感兴趣。

这是从 git log 获取总更改而不是每次提交更改的单线(根据需要更改提交选择选项 - 这是您的提交,从 commit1 到 commit2):

git log --numstat --pretty="%H" --author="Your Name" commit1..commit2 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'

(你必须让 git log 打印一些关于提交的识别信息;我随意选择了哈希,然后使用 awk 只挑选出具有三个字段的行,即具有统计信息的行)

2022-02-28