如何配置git-log显示所有stash而非仅栈顶的stash@{0}?
如何让
git log显示所有Git stash记录 Git的stash本质是一串链式提交,refs/stash默认只指向栈顶的stash@{0},其他历史stash是通过引用日志(reflog)维护的。默认git log --all只会追踪当前引用指向的提交,不会遍历整个stash链,所以只能看到栈顶记录。要显示所有stash,可以用以下方法:
使用
--walk-reflogs选项遍历stash完整链
这个选项会让Git遍历目标引用的所有历史版本,覆盖整个stash栈。执行命令:git log --oneline --graph --walk-reflogs refs/stash如果需要同时查看所有分支和所有stash,结合
--all使用:git log --oneline --all --graph --walk-reflogs配置全局别名简化操作
把常用命令设为Git别名,方便后续快速调用:git config --global alias.log-all 'log --oneline --all --graph --walk-reflogs'之后只需输入
git log-all,就能看到包含所有stash的提交图谱。
补充说明:Git默认不自动显示所有stash,是因为stash的历史存储在reflog中,而非独立的引用分支。--walk-reflogs的作用就是强制Git遍历每个引用的完整历史记录,从而把所有stash提交都纳入日志展示范围。
内容的提问来源于stack exchange,提问作者Josh Brunton
相关产品推荐
相关产品推荐

