将git log --stat与--name-status结合起来?

时间:2012-05-23 00:53:24

标签: git

我设置了两个git log别名:一个显示--name-status

...
| A   path/to/yourfile.c
| M   path/to/myfile.c
| M   path/to/my/otherfile.c
...

和一个显示--stat

...
|  path/to/yourfile.c          |    2 ++
|  path/to/myfile.c            |    2 +-
|  path/to/my/otherfile.c      |   27 +++++-----
...

是否可以将两者合并?

...
| A   path/to/yourfile.c          |    2 ++
| M   path/to/myfile.c            |    2 +-
| M   path/to/my/otherfile.c      |   27 +++++-----
...

我喜欢--stat概述,但它并没有告诉我是否添加或删除了文件;只是他们在某种程度上被修改了。

(组合两个命令行标志时,忽略--stat。)

2 个答案:

答案 0 :(得分:7)

我不知道如何合并--stat--name-status,但您可以使用git log --stat --summary获取已添加/删除/重命名/复制的文件列表diffstat。

答案 1 :(得分:0)

我对git statusgit diff --stat有类似的想法。有人帮我提出了:

git status | sed -e "$(git diff --stat | sed -e 's#/#\\/#g' | awk '/\|/ {print "s/" $1 "/" $0 "/;"}')"

我尝试用你的git log命令替换它,但是它们太长了(因为它被分页)。如果您使用-n5缩短日志(仅显示最后5次提交),这是一个良好的开端

git log --name-only -n5| sed -e "$(git log --stat -n5 | sed -e 's#/#\\/#g' | awk '/\|/ {print "s/" $1 "/" $0 "/;"}')"