如何只 stash 某个特定文件的改动
stash 指定文件:git stash push -- <文件路径>,可带 -m 写备注;多个文件列多个路径。恢复用 git stash pop 或 git stash show -p 查看内容。
用 git stash push -- <文件路径>:只把指定文件的改动收进 stash,工作区其他改动原样保留。加 -m "备注" 方便日后辨认;多个文件可以列多个路径。
用法
git stash push -- src/config.js # 单个文件
git stash push -m "配置调整" -- src/config.js # 带备注
git stash push -- a.js b.js dir/ # 多个文件/目录
配套操作
git stash list # 看 stash 列表(备注在这里显示)
git stash show -p stash@{0} # 查看内容
git stash pop # 应用最新 stash 并删除条目
git stash apply stash@{1} # 应用指定 stash 但保留条目
想交互式挑选?
git stash push -p # 逐块(hunk)选择要 stash 的改动
比按文件更细——同一个文件里也能只 stash 其中几处改动。
常见问题(FAQ)
Q:stash 未跟踪的新文件?
加 -u:git stash push -u -- 新文件路径。未跟踪文件默认不进 stash。
Q:stash 里包含已暂存(staged)的改动吗?
包含。stash 把工作区和暂存区的相关改动一起收走;恢复时默认全部回到工作区(想恢复暂存状态加 --index)。
Q:路径里带特殊字符怎么办?
用引号包住路径:git stash push -- "src/my file.js"。