git:仅列出针对所有隐藏修改的文件

问题描述 投票:22回答:4

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

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

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

有没有办法让git向我显示存储的列表,以及每个存储的更改[[just?

git
4个回答
23
投票

Git v2.2及更高版本的更新:

[git stash list --stat有效。

Things have changed,因为提出了问题,并且OP的困境不再适用。从Git v2.2开始,您

can只需将--stat传递给git stash list,它将表现出直观的期望。

您还可以使用--name-status可用的其他任何文件列表选项,例如--name-only--rawgit 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也可以,但是速度慢得令人难以忍受。


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 ...


4
投票
git stash show -p以补丁形式显示隐藏是我认为您要的。

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


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

git show stash @ {0} --stat
© www.soinside.com 2019 - 2024. All rights reserved.