git diff --stat
and git log --stat
显示输出如:
$ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56bf7a7e07
app/controllers/application_controller.rb | 34 +++-------------------------
1 files changed, 4 insertions(+), 30 deletions(-)
但该提交中真正发生的情况是更改了 4 行并删除了 26 行,这与添加 4 行和删除 30 行不同。
有没有办法获得增量 LOC(在本例中为 26)?我并不真正关心区分添加或删除的行。
对于每个文件的数字差异信息:
git diff --numstat
对于聚合的数字差异信息:
git diff --shortstat
至于将修改与添加和删除对分开,--word-diff
可能有帮助。你可以尝试这样的事情:
MOD_PATTERN='^.+(\[-|\{\+).*$' \
ADD_PATTERN='^\{\+.*\+\}$' \
REM_PATTERN='^\[-.*-\]$' \
git diff --word-diff --unified=0 | sed -nr \
-e "s/$MOD_PATTERN/modified/p" \
-e "s/$ADD_PATTERN/added/p" \
-e "s/$REM_PATTERN/removed/p" \
| sort | uniq -c
它有点冗长,因此您可能想在自己的脚本中解析它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)