29

根据git 文档git stash list将接受您可以传递给的任何选项git log

我想要做的是将--stat选项传递给git stash list. 这可行,但是它似乎显示了存储库中的每个文件。

现在,我知道有一个git stash show只会显示那些已更改的文件,但我需要手动检查并检查每个文件。

有什么方法可以让 git 向我显示存储列表,显示每个存储的更改?

4

4 回答 4

33

Git v2.2 及以后的更新:

git stash list --stat作品。

自从提出问题以来,情况发生了变化,OP 的困境不再适用。从 Git v2.2 开始,您可以简单地传递--statgit 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也有效,但速度慢得令人难以忍受。

于 2014-09-04T02:25:47.917 回答
11

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

...
于 2018-08-02T22:09:54.257 回答
4

git stash show -p以补丁形式显示存储是我相信你所要求的。

对于特定的存储,您可以执行以下操作:git stash show -p stash@{x}其中 x 是堆栈上的存储 #。

于 2013-02-06T18:49:30.837 回答
1

如果列出一个存储的所有文件,例如最新的存储,使用

git show stash@{0} --stat

于 2019-12-31T10:13:16.863 回答