Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在diff文件上拥有git统计信息?_Git_Patch - Fatal编程技术网

如何在diff文件上拥有git统计信息?

如何在diff文件上拥有git统计信息?,git,patch,Git,Patch,在git存储库中,我可以执行以下操作: git log --oneline --stat 我将有一个很好的输出,如下所示: ca0ab77 commit message a/file/changed | 19 ------------------- 1 file changed, 19 deletions(-) 在我的例子中,我在git存储库之外工作,我只有.diff(git diff的输出)文件,我希望有相同的统计数据(文件更改、添加、删除) 有没有工具可以做这件事?或者我应该写一个正则表

在git存储库中,我可以执行以下操作:

git log --oneline --stat
我将有一个很好的输出,如下所示:

ca0ab77 commit message
a/file/changed | 19 -------------------
1 file changed, 19 deletions(-)
在我的例子中,我在git存储库之外工作,我只有.diff(git diff的输出)文件,我希望有相同的统计数据(文件更改、添加、删除)


有没有工具可以做这件事?或者我应该写一个正则表达式?

带有+/-符号的直方图和“1文件已更改,…”称为diffstat。
diffstat
工具()可以在您输入diff时生成以下内容:

$ diffstat -p1 my-patch.diff
src/some_file.c |    4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
如果只需要最后一行,请使用
-s

$ diffstat -s my-patch.diff
1 file changed, 2 insertions(+), 2 deletions(-)
如果您正在向它提供带有a/b前缀的git Diff,那么使用
-p1
可能是一个好主意。如果不使用
-p
,diffstat将从文件名中删除常用前缀。有时,这会给您带来意外的结果(特别是当您的修补程序通过将文件与
/dev/null
进行比较来添加或删除文件时)

如果使用
-C
选项,Diffstat还可以为您提供彩色直方图