git stash用于临时保存未提交的修改,便于切换分支、拉取更新等;常用命令包括git stash push、git stash list、git stash pop/appliy;建议加-m描述、及时清理无用stash。

用 git stash 可以把当前工作区和暂存区的修改“藏起来”,不提交也不丢弃,方便你临时切换分支、拉取更新或处理紧急任务,之后还能随时取回。
什么时候该用 git stash
当你有未提交的修改(比如改了一半的功能、调试日志、临时注释),但又必须马上:
- 切换到其他分支(
git checkout或git switch) - 执行
git pull避免合并冲突 - 测试别人发来的补丁或修复
- 暂时离开当前工作状态,又不想 commit 一个不完整的提交
基本暂存与恢复流程
最常用的一组命令就是“存”和“取”:
-
暂存当前修改:
git stash push(推荐写全,比git stash更明确) -
查看所有暂存记录:
git stash list(会显示类似stash@{0}、stash@{1}的编号) -
恢复最新一次暂存:
git stash pop(恢复 + 删除该 stash) -
只恢复不删除:
git stash apply(适合多次尝试或保留备份)
注意:pop 和 apply 默认操作的是 stash@{0}(最近一次)。如果要操作更早的,加参数,例如:git stash pop stash@{2}。
带描述保存,避免混淆
如果你频繁使用 stash,光靠编号很难分辨每次存了什么。建议加上描述:
git stash push -m "fix: 调整登录页按钮样式"git stash push -m "wip: 用户权限校验逻辑初稿"
这样 git stash list 就能一目了然看到每条 stash 的用途,也方便后续清理。
清理不用的 stash
stash 不会自动清理,堆多了容易干扰判断。安全做法是:
- 确认某条 stash 已无用,用
git stash drop stash@{n}删除单个 - 清空全部(谨慎!):
git stash clear - 想看某条 stash 具体改了什么?用
git stash show -p stash@{0}
提醒:如果 pop 或 apply 后出现冲突,Git 会像 merge 冲突一样标出,需要手动解决并 git add 后再 git commit。











