git stash命令用法

git stash 是 Git 中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改。


一、基本用法

1. 保存当前修改(包括暂存区和工作区的内容)
bash 复制代码
git stash
2. 查看保存了哪些 stash
bash 复制代码
git stash list

示例输出:

复制代码
stash@{0}: WIP on main: 1234567 Fix bug
stash@{1}: WIP on feature-x: abcdef0 Add feature x
3. 恢复最近一次 stash 并删除它
bash 复制代码
git stash pop
4. 恢复某一个 stash 并删除它
bash 复制代码
git stash pop stash@{1}
5. 恢复某一个 stash 但保留
bash 复制代码
git stash apply stash@{1}
6. 删除某一个 stash
bash 复制代码
git stash drop stash@{0}
7. 清除所有 stash
bash 复制代码
git stash clear

二、常见增强用法

1. 只 stash 暂存区和工作区中已修改的文件(不包括未追踪文件)
bash 复制代码
git stash -k   # 等价于 git stash --keep-index
2. 包括未追踪的文件一起 stash
bash 复制代码
git stash -u   # 等价于 git stash --include-untracked
3. 包括未追踪和忽略的文件一起 stash
bash 复制代码
git stash -a   # 等价于 git stash --all
4. 带描述信息
bash 复制代码
git stash save "WIP: 修复登录页面问题"

注意:Git 2.15 之后推荐使用 git stash push -m "message" 代替 save


三、举个例子

假设你在 main 分支开发中临时要切换到 bugfix 分支修复紧急问题:

bash 复制代码
git stash           # 保存当前未提交的代码
git checkout bugfix # 切换分支
...                 # 修复并提交
git checkout main   # 回到原分支
git stash pop       # 恢复之前保存的代码

相关推荐
Selicens1 小时前
git批量删除本地多余分支
前端·git·后端
闲云一鹤1 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记4 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记4 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger5 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP6 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思6 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享6 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立6 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible