2012-05-23 51 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 "/;"}')"