Git 带有路径规范的隐藏列表

Git stash list with pathspec

The documentation 对于 git stash list

The command takes options applicable to the git log command to control what is shown and how. See git-log[1].

如果我 运行 一个普通的 git stash list,它会显示 stash@{N} 的列表,其中有很多 "WIP on branch1," "WIP on branch2," 等等。

但如果我尝试 git stash list -- doc 寻找特别影响文档的藏匿处,它会 这个...

HEAD@{33}: checkout: moving from master to abcdef123
HEAD@{46}: checkout: moving from branch1 to master
HEAD@{67}: pull: Fast-forward
HEAD@{68}: checkout: moving from branch1 to master
HEAD@{71}: pull: Fast-forward
HEAD@{74}: rebase finished: returning to refs/heads/branch2
HEAD@{75}: rebase: WIP
HEAD@{76}: rebase: WIP
HEAD@{77}: rebase: Docs: New feature explanation (This is a commit message)
HEAD@{78}: rebase: checkout branch3
HEAD@{79}: checkout: moving from branch1 to branch3
HEAD@{81}: rebase: updating HEAD
...

是什么!?我如何查看过滤到特定路径规范的隐藏?

git stash 命令 一个 shell script,这使得它对于 Git 源代码来说异常可读。它似乎不再是一个,自从上面的 link 到 Git 版本 2.21.0.

以来,该错误可能会得到或修复

list_stash 代码位于 lines 402-405,主要由 运行ning:

组成
git log --format="%gd: %gs" -g --first-parent -m "$@" $ref_stash --

其中 $ref_stash 默认为 refs/stash。请注意 $ref_stash"$@" 之后 。它应该更漂亮:因为你提供了 --,它应该把你的前 -- 参数放在 -- 之前,然后你的 post--- 参数(和放下你的 --),因此 运行:

git log --format="%gd: %gs" -g --first-parent -m refs/stash -- doc

哪个会做你想做的。相反,它结束了 运行ning:

git log --format="%gd: %gs" -g --first-parent -m -- doc -- refs/stash --

这意味着 git log 查看 HEAD reflog 而不是 refs/stash reflog。