根据git docs,git stash list
将接受您可以传递给git log
的任何选项。
我想做的是将--stat
选项传递给git stash list
。这可行,但是似乎显示了存储库中的每个文件。
[现在,我知道有git stash show
会只显示那些已更改的文件,但是我需要手动检查每个文件。
有没有办法让git向我显示存储的列表,以及每个存储的更改[[just?
Git v2.2及更高版本的更新:
[git stash list --stat
有效。Things have changed,因为提出了问题,并且OP的困境不再适用。从Git v2.2开始,您
can只需将--stat
传递给git stash list
,它将表现出直观的期望。
--name-status
可用的其他任何文件列表选项,例如--name-only
,--raw
和git log
。以下原始答案适用于使用v2.2之前的Git版本的情况。
原始答案:
我猜是这样:git stash list | while IFS=: read STASH ETC; do echo "$STASH: $ETC"; git diff --stat $STASH~..$STASH --; done
(在Git Bash msysgit中测试。[
git stash show $STASH
而不是git diff --stat $STASH~..$STASH
也可以,但是速度慢得令人难以忍受。
git stash list --name-status
输出:
stash@{0}: WIP on branch-name: face0ff97 Commit message
M path/to/modified/file.cpp
A path/to/added/file.xml
D path/to/deleted/file.kt
stash@{1}: WIP on branch-name: 953add384 Commit message
...
git stash show -p
以补丁形式显示隐藏是我认为您要的。对于特定的存储,您可以执行以下操作:git stash show -p stash@{x}
其中x是堆栈上的存储#。
git show stash @ {0} --stat