有没有办法让 git 显示添加的行、更改的行和删除的行?

2024-02-22

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(使用前将#替换为@)

有没有办法让 git 显示添加的行、更改的行和删除的行? 的相关文章

随机推荐