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