git - 带有 pathspec 的 Git 存储列表
问题描述
文档git stash list
说_
该命令采用适用于该命令的选项
git log
来控制显示的内容和方式。见git-log
[1]。
如果我运行一个普通的git stash list
,它会显示一个列表stash@{N}
,其中有很多“分支 1 上的 WIP”、“分支 2 上的 WIP”等等。
但是,如果我尝试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 脚本,这使得它对于 Git 源代码具有异常的可读性。它似乎不再是一个,并且由于上面的链接指向 Git 版本 2.21.0,该错误可能会得到或修复。
list_stash
代码位于第402-405 行,主要包括运行:
git log --format="%gd: %gs" -g --first-parent -m "$@" $ref_stash --
$ref_stash
默认情况下在哪里refs/stash
。请注意,$ref_stash
在. 它应该更漂亮:既然你提供了 ,它应该把你的前置参数放在你的前面,然后把你的后置参数放在后面(并去掉你的),然后运行: "$@"
--
--
--
--
--
git log --format="%gd: %gs" -g --first-parent -m refs/stash -- doc
这会做你想做的事。相反,它最终运行:
git log --format="%gd: %gs" -g --first-parent -m -- doc -- refs/stash --
这意味着git log
查看HEAD
reflog 而不是refs/stash
reflog。
推荐阅读
- amazon-web-services - 具有无服务器框架 EC2 部署的 AWS
- java - 从 apache 网络服务器接收数据
- python - 当我们不指定validation_split 或验证集时,keras 计算准确性和损失是什么?
- javascript - 如何获取 document.getElementById 的结果
- wordpress - 参数必须是数组或对象 metaboxes-framework/init.php
- android - Recyclerview notifyDataSetChanged 两次停止分页
- c# - 标准化负值的正确方法是什么?
- reactjs - 如何在调用 redux 操作后立即更新组件中的 props?
- go - MapScan 无法解组为非指针 int64
- javascript - 使用 Angular 在 Chrome 67 中 HTML5 视频不会自动播放(即使静音时)