根据git docs,git stash list
将接受您可以传递给git log
的任何选项。
我想要做的是将--stat
选项传递给git stash list
。这有效,但它似乎显示了回购中的每个文件。
现在,我知道有一个git stash show
会显示那些已经更改的文件,但我需要手动检查每个文件。
有没有办法让git向我显示存储列表,只是每个存储的更改?
答案 0 :(得分:14)
Git v2.2以后的更新:
git stash list --stat
有效。
Things have changed问题被提出后,OP的困境不再适用。从Git v2.2开始,你可以简单地将--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
也起作用,但速度慢得无法忍受。
答案 1 :(得分:6)
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
...
答案 2 :(得分:4)
git stash show -p
以补丁形式显示存储,我相信你要求它。
对于特定存储,您可以执行以下操作:git stash show -p stash@{x}
其中x是堆栈上的存储#。
答案 3 :(得分:0)
如果列出所有文件的一个存储区,例如最新的存储,使用
git show stash @ {0} --stat