git:只列出为所有存储修改的文件

git:只列出为所有存储修改的文件,git,Git,根据,git存储列表将接受您可以传递到git日志的任何选项 我要做的是将--stat选项传递到git stash list。这是可行的,但是它似乎显示了回购协议中的每个文件 现在,我知道有一个git stash show,它将只显示那些已经更改的文件,但是我需要手动检查每个文件 有没有办法让git向我显示隐藏列表,只显示每个隐藏的更改?git stash show-p以补丁形式显示隐藏,我相信这是您要求的 对于特定的存储,您可以执行以下操作:git stash show-p stash@{x}其

根据,
git存储列表
将接受您可以传递到
git日志
的任何选项

我要做的是将
--stat
选项传递到
git stash list
。这是可行的,但是它似乎显示了回购协议中的每个文件

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


有没有办法让git向我显示隐藏列表,只显示每个隐藏的更改?

git stash show-p
以补丁形式显示隐藏,我相信这是您要求的


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

git v2.2以后的更新:

git隐藏列表——stat
有效

因为问题被提出,OP的困境不再适用。从GitV2.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
也能工作,但速度慢得令人无法忍受。

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 show stash@{0}--stat


哦,对不起,如果我的帖子让人困惑的话。我想要与
git stash show
(或
git log--stat
)相同的行为,但不必通过1指定1。您还必须创建一个脚本,只需列出特定存储的文件,它将是
git stash show-p stash@{x}--仅名称
nice answer bro