git diff --stat
和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行代码是不同的。
有没有办法获取差异行数(在这种情况下是26行)?我并不关心区分添加或删除的具体行数。
git diff commit1 commit2 --word-diff ...
其中commit1/2是SHA1、分支、标签等。 - Drew Noakesgit diff --numstat
命令的输出结果是按文件拆分的。如果要查看差异的总添加/删除情况,可以将其导出至 awk:git diff --numstat | awk '{ added += $1; removed += $2 } END { print "+" added " -" removed }'
- hughesgit diff --shortstat
。根据我的经验,它相当于累加git diff --numstat
的输出结果。 - klaus triendl--cached
。 - xlm