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 是你这种场景的“保命命令”


posted @ 2026-03-24 19:27  学不会xuebuhui  阅读(0)  评论(0)    收藏  举报
Language: javascript //图片预览