"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(-)
Run Code Online (Sandbox Code Playgroud)
但是在那次提交中真正发生的事情是改变了4行,删除了26行,这与添加4行并删除30行不同.
有没有办法获得delta LOCs(在这种情况下为26)?我并不真正关心区分添加或删除的行.
quo*_*ian 103
您可以使用:
git diff --numstat
Run Code Online (Sandbox Code Playgroud)
获得数字差异信息.
至于将修改与添加和删除对分开,--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
Run Code Online (Sandbox Code Playgroud)
这有点啰嗦,所以你可能想要在自己的脚本中解析它.
小智 51
如果你想知道由id提交添加/更改/删除的行commit-id
,你可以使用
git show commit-id --stat
Run Code Online (Sandbox Code Playgroud)
要么
git diff commit-id-before commit-id --stat
Run Code Online (Sandbox Code Playgroud)如果您想知道范围提交添加/更改/删除的行,您可以使用
git diff commit-id1 commit-id2 --stat
Run Code Online (Sandbox Code Playgroud)如果您想知道每次提交添加/更改/删除的行,您可以使用
git log --stat
Run Code Online (Sandbox Code Playgroud)Fal*_*son 11
如果您的所有文件都已暂存以进行提交,请查看--numstat
如下代码:
git diff --numstat HEAD~
Run Code Online (Sandbox Code Playgroud)
Flu*_*lux 10
您可以使用diffstat
来显示修改后的行数。例如:
git diff HEAD c9af3e6136e8aec1f79368c2a6164e56bf7a7e07 | diffstat -Cm
Run Code Online (Sandbox Code Playgroud)
该-C
选项用于获取彩色输出;该-m
选项用于显示修改的行数。示例输出:
app/controllers/application_controller.rb | 30 -------------------!!!
1 files changed, 0 insertions(+), 26 deletions(-), 4 modifications(!)
Run Code Online (Sandbox Code Playgroud)
请注意,每个类别(插入、删除、修改)中的行数只是近似值,如下所示man diffstat
:
-m 从补丁文件的每个“块”合并插入/删除计数,以近似修改行的计数。
diffstat
与 相比有一个缺失的功能git diff --stat
:diffstat
无法显示文件移动/重命名(例如app/{a.rb => b.rb}
),与git diff --stat
能够通过使用-M
( --find-renames
) 选项或通过diff.renames
在 git 配置文件中设置(请参阅man git-config
)来显示此信息不同。
git 使用“统一” diff 作为 diff 格式,它只添加和删除了行。您必须执行一些外部操作才能获取显示添加、删除和更改信息的差异。
https://wiki.postgresql.org/wiki/Working_with_Git#Context_diffs_with_Git提供了允许运行常规旧“diff”的脚本的链接 - 从中您可以生成“上下文”diff输出。上下文差异确实显示添加、删除和更改的行,这应该允许您获取所需的数据。
归档时间: |
|
查看次数: |
52084 次 |
最近记录: |