2012-05-23 47 views
7

我有两个git log别名设置:一个显示--name-status结合git日志--stat和--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被忽略。)

回答

7

我不知道的方式结合--stat--name-status,但你可以使用git log --stat --summary获得的添加列表/除了diffstat以外,还删除/重命名/复制了文件。

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 "/;"}')"