您需要git diff
--stat
选项,或者如果您想在脚本中解析它,请使用--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>
但您也可以使用--numstat
或--shortstat
。 git log
还可以通过多种其他方式选择提交 - 查看文档。您可能会对--since
(而不是指定提交范围,仅从上周开始选择提交)和--no-merges
(合并提交实际上不会引入更改)之类的东西以及漂亮的输出选项( --pretty=oneline, short, medium, full...
)。
这是从 git 日志中获取总更改而不是每次提交更改的一种方法(根据需要更改提交选择选项 - 这是您的提交,从 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 仅选择了具有三个字段的行,即具有 stat 信息的行)
git diff --shortstat
仅提供更改和添加的行数。这仅适用于未分级的更改。与分支进行比较:
git diff --shortstat some-branch
对于懒惰的人,请使用git log --stat
。