git stash 用法
git stash 是一个非常实用的“临时存档工具”,专门解决:
👉 “我代码改了一半,但现在必须切分支 / pull / 做别的事”
我给你讲清楚:什么时候用 + 怎么用 + 常见坑
🧠 一、什么是 stash(本质)
git stash = 把当前改动临时存起来,让工作区变干净
👉 类似:
💾 “先把现场收起来,等会再恢复”
🚀 二、典型使用场景(你一定会用到)
✅ 场景1:改代码改一半,要 pull
git stash
git pull
git stash pop
👉 防止:
- 被覆盖
- merge 冲突混乱
✅ 场景2:临时切分支
git stash
git checkout other-branch
回来:
git checkout 原分支
git stash pop
✅ 场景3:不想 commit 垃圾代码(WIP)
👉 比如:
- 代码没写完
- 不想污染提交历史
git stash
✅ 场景4:你刚刚遇到的情况(未跟踪文件冲突)
git stash -u
git pull
git stash pop
🧠 三、核心命令(必须掌握)
1️⃣ 保存
git stash
👉 保存:
- 已修改文件
- 已 add 的文件
⚠️ 保存未跟踪文件(很重要)
git stash -u
👉 包括:
- 新建文件(你刚刚就是这个)
2️⃣ 查看 stash 列表
git stash list
stash@{0}
stash@{1}
3️⃣ 恢复(最常用)
git stash pop
👉 做两件事:
- 恢复代码
- 删除 stash
4️⃣ 恢复但保留
git stash apply
👉 不删除 stash
5️⃣ 恢复指定 stash
git stash pop stash@{1}
6️⃣ 删除 stash
git stash drop stash@{0}
清空:
git stash clear
🧠 四、推荐进阶用法(很实用)
✅ 给 stash 加名字
git stash push -m "fix ethereum bug"
✅ 只 stash 某些文件
git stash push file1 file2
✅ 创建分支恢复(高级但很强)
git stash branch new-branch
👉 效果:
- 创建新分支
- 自动恢复 stash
- 删除 stash
⚠️ 五、常见坑(你要注意)
❌ stash 没保存新文件
git stash ❌
👉 不包含未跟踪文件
✔ 正确:
git stash -u
❌ stash pop 冲突
👉 会出现:
CONFLICT
解决:
# 手动改
git add .
git commit
❌ stash 后以为代码“丢了”
👉 其实在:
git stash list
🔥 六、一句话理解
👉
git stash= “临时把代码藏起来,等会再拿出来”
✅ 七、结合你当前开发(强烈推荐流程)
你现在这种经常:
- pull upstream
- 修改代码
👉 标准安全流程:
git stash -u
git pull upstream xxx
git stash pop
💡 八、和 commit 的区别
| 对比 | stash | commit |
|---|---|---|
| 是否进入历史 | ❌ | ✅ |
| 是否长期保存 | ❌ | ✅ |
| 是否影响远程 | ❌ | ✅ |
| 使用场景 | 临时 | 正式提交 |
🔥 九、终极总结
❗ 只要你不确定能不能 pull / checkout,就先 stash
❗git stash -u是你这种场景的“保命命令”

浙公网安备 33010602011771号