有没有添加git显示行,更改行和删除行的方法?
“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行不同。
有没有办法获得三angular洲LOCs(在这种情况下26)? 我并不在意区分添加或删除的行。
您可以使用:
git diff --numstat
得到数字差异信息。
至于从一个添加和删除对分离修改, --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
这有点啰嗦,所以你可能想用自己的脚本parsing它。
-
如果你想知道使用id
commit-id
提交的行添加/更改/删除,你可以使用git show commit-id --stat
要么
git diff commit-id-before commit-id --stat
-
如果你知道范围提交添加/更改/删除的行,你可以使用
git diff commit-id1 commit-id2 --stat
-
如果你想知道每个提交添加/更改/删除的行,你可以使用
git log --stat
git使用“统一”比较,只有添加和删除行,作为比较格式。 你必须做一些外部的事情来获得显示添加,删除和更改信息的差异。
https://wiki.postgresql.org/wiki/Working_with_Git#Context_diffs_with_Git提供了一个脚本的链接,允许运行常规的“差异”; – 从而可以生成一个“上下文”差异输出。 上下文diff会显示添加,删除和更改的行,这应该允许您获取所需的数据。