如何通过stash名称执行git stash的drop、apply、pop操作?
通过stash名称/名称片段操作stash的方法
Git原生就支持基于stash注释内容匹配定位stash,不需要依赖stash@{n}格式的数字索引,具体用法如下:
前置准备
存stash的时候建议带上明确的自定义注释,方便后续匹配识别:git stash push -m "你的自定义stash说明,比如fix: 暂存支付按钮bug修复代码"
核心操作命令
Git支持stash^{/关键词片段}语法,会自动从最近的stash开始检索,匹配第一条注释中包含对应关键词片段的stash,直接对接apply/pop/drop子命令即可:
- 应用stash(保留stash记录):
git stash apply stash^{/你要匹配的名称片段} - 应用并删除stash:
git stash pop stash^{/你要匹配的名称片段} - 直接删除stash(不应用):
git stash drop stash^{/你要匹配的名称片段}
举个实际例子,如果你之前存过一条注释为feat: 暂存用户中心头像上传逻辑的stash,不需要查它的索引编号,直接执行:git stash pop stash^{/头像上传}
就能直接pop对应的stash。
注意:如果有多条stash的注释都包含你写的关键词片段,Git会默认匹配时间最近的那一条。执行操作前可以先跑
git stash list查看所有stash注释,确认关键词不会误匹配其他stash即可。
简化命令配置
如果觉得每次输入stash^{/}语法太繁琐,可以在全局Git配置(~/.gitconfig)中添加如下别名,之后直接传关键词就能操作:
[alias] sapply = "!f() { git stash apply stash^{/$*}; }; f" spop = "!f() { git stash pop stash^{/$*}; }; f" sdrop = "!f() { git stash drop stash^{/$*}; }; f"
配置完成后,操作可以简化为:git spop 头像上传
内容的提问来源于stack exchange,提问作者Eyal Gerber
相关产品推荐
相关产品推荐

